Endless Parentheses

Concise ramblings on Emacs productivity.

Support on Gratipay
profile for Malabarba on Stack Exchange

Debug your Emacs init file with the Bug-Hunter

“With great power comes great responsibility,” and Emacs is a prime example of that. The versatility of having an editor that’s a lisp interpreter is truly empowering, but it can also backfire on you in the most unexpected ways. If you’ve ever ran into a foggy incompatibility issue between two unrelated packages, that manifested itself by turning on your mother’s coffee machine every other weekday, then you know how difficult this can be to track down. [...]

Better backspace during isearch

I’ve never been too pleased with the default behaviour of Backspace during isearch. If the last key you hit was C-s, then it does the same as C-r (albeit with less repetition), and if your match failed several characters ago, you need to hit it that many times to get back on track. Fortunately, asmeurer took the time to phrase this problem I barely realised I had. [...]

(Very Late) SX.el Announcement, and more launcher-map

SX.el, the awesome Emacs client for the StackExchange network, has been stable and happy for many months now, and it’s about time I mentioned it here. We have put considerable effort into making the interface intuitive, teaching you how to use it without the need for explanations. In fact, it would probably be a disservice to the package for me to post a tutorial, so I won’t just yet. Instead, I’ll just urge you to give it a try. [...]

Kill Sexp or Directory

Cluttered as our keyboards are with key-binds, it's always nice when we can combine two disjoint functionalities in the same key. I have M-k and C-M-k bound to killing the next and previous sexp, respectively, but that is never something I need inside a string or when typing a file name in the minibuffer. Then these keys become utterly useless! [...]

Cider-debug, a visual, interactive, debugger for Clojure

Over the last couple of weeks, I’ve been working on a Clojure debugger for Cider that is strongly inspired by Edebug. Stepping trough code of any form and injecting values into running code are the features available in this first release. [...]

New on Elpa and in Emacs 25.1: seq.el

Thanks to Nicolas Petton, Emacs is getting a new built-in sequence library in 25.1, and it’s already available on GNU Elpa for everyone. There’s not much to be said about this besides the obvious “it’s about time”. [...]

Easily Create Github PRs from Magit

In contrast with fetching pull requests, which either requires a minor-mode or some long-named branches, creating pull requests is as easy as a one-key deal. [...]

Automatically configure Magit to access Github PRs

Did you know you can fetch Github pull requests with git by adding a remote.origin.fetch configuration? That insightful tip is a courtesy of Oleh at (or emacs, a very active blog that has a habit of unbalancing parentheses wherever it goes). I like the tip so much I wanted to add something to it. Instead of manually adding that line to you .git/config file, why not have Magit do that for you? [...]

New on Elpa: Spinner.el, mode-line spinners and progress-bars

After adding asynchronous operations to Paradox, I saw the need to provide some visual feedback to the user. In the simplest sense, this could be a fixed message on the mode-line, such as “Upgrading…” or “Working”, but this is not enough. I needed movement. Movement implies something is ongoing. It catches your eye and gives you that subconscious reassurance that progress is being made. A tiny spinning wheel, hourglass, or rainbow is enough to sooth all your doubts, unerringly restoring your confidence on the software and those who made it. [...]

Prettify your Apostrophes

Now that you’ve started your journey on the Typography Express by using round double quotes, take a seat and extend that to your apostrophes as well. This snippet binds a round apostrophe to the ' key, but also inserts a pair of single round quotes with a prefix. [...]

Visit Directory inside a Set of Directories

Almost every directory I work with, is either directly under “~/Dropbox/” or under “~/Dropbox/Work/”. However, I never actually visit these two directories, only the directories inside them. The number of possible targets for find-file is approaching the outer borders of two-digit land, so there's no hope for my brain to remember registers for all of these. [...]

Paradox 2.0 Released: Execution hook, Interface improvements, Async Execution

I've just released Paradox version 2.0. If you've been following the blog, you already know this features the ability to do background upgrades. Below is a list of other features. [...]

New in Emacs 25.1: comment-line

After the previous post, I got in touch with the nice fellas at emacs-devel about including comment-line in Emacs. Understandably, there was a wee bit of concern with using up one of the oh-so-important C- binds, so it's been put under C-x C-; for now. [...]

View the Change-Log for packages before upgrading, with Paradox

Paradox has had this feature for a while, but I've never blogged about it. When you're in the Packages Menu, and you're about to upgrade your packages with the always reliable U x, do you ever wonder what's actually changed in them? When I do it, there's usually something between 5 and 20 of them just waiting for me to answer y, but rarely do I see any actual difference in the new versions. [...]

New on (M)Elpa: speed-of-thought-lisp

When your computer is feeling slow and you decide to upgrade it, where do you start? You start by finding the bottleneck, of course. That awesome CPU won't do you any good with crappy RAM disk. The same logic holds for your coding skills. [...]