Emacs’ Undeserved Reputation
Mar 02, 2025 18:19

In a post titled “Is Emacs Hard to Configure” on his blog Irreal, JCS discusses the oft-heard complaint that Emacs is difficult to configure. He objects, rightly so in my opinion, saying that many non-programmers also use Emacs. The post on Irreal was prompted by this discussion on Reddit. User precompute claimed that Emacs is not hard to configure, so long as you understand Elisp. Several responded that the need to understand Elisp is exactly the problem. I am one of those non-programmers who use Emacs, and somehow even I manage to use it to do my work.

I admit that I wouldn’t have been able to do some of the more complex things in my config file without the help of the many generous people in the Emacs community who constantly share their knowledge with others. This means that for any configuration problem you might have, it’s very likely that someone has already explained in detail how to solve it. It probably is easier to set the font in other text editors; in VSCode, for example, open the settings, select the font menu, and type in the font family in one text field and the font size in another. That is admittedly simpler than what I have in my Emacs config, but a quick search for “Emacs set font” reveals pages and pages of results, each explaining how it’s done. That means a new user can learn how to set the font in nearly the same time as it takes to do it in any other editor.

I admit that my claiming that Emacs being only slightly more difficult to configure than other text editors does not amount to a good case that someone should consider using Emacs. The power of Emacs, in my opinion, is that you can, with a little Elisp, make it do nearly anything that you want to do with text. How much Elisp? The answer is very little, actually. Whenever I find myself repeatedly using the same series of commands, I create a command that does the same thing with a single command. This only requires learning to write simple functions. For a very simple example, I often would delete a window, then balance the remaining windows in the frame. This is just two commands, but there’s no reason why I have to execute both myself. I can simply string them together into a custom command like this:

(defun delete-window-balance ()
    "Delete window and rebalance the remaining ones."
    (interactive)
    (delete-window)
    (balance-windows))

I have other examples that are more complex, but they’re still just instances of taking ordinary Emacs commands and combining into a workflow that meets the needs of the particular user. This is ridiculously simple in Emacs, but I suspect it would be much more difficult in another editor.

Tagged: Emacs