Emacs - the Start of a Journey

Open in

A Work-in-Progress.

Every editor I have used has held a version of me. The one who typed HTML by hand, the one who learned to build for the web, the one who wrote code for a living, and the one who now writes mostly words. Today, I am picking the editor that I hope will hold the rest of them.

Emacs

I started all the way back with HotDog from Sausage Software, when making a web page felt like magic and the editor was the wand. Then came the humble Windows Notepad, which taught me that you need nothing more than a blank page and patience. TextPad came next, and I cared about it enough to write syntax files for it. BBEdit, when I moved to the Mac and never looked back. Coda, which made the web feel like one well-designed room. And then, in 2008, Sublime Text, which has been home ever since. I have been a loyal, paying customer from the first year, and I have happily paid for every upgrade since, hoping that it helps the people who make it keep making it. Each one of them was the right editor at the right time, and I remember each one fondly, the way you remember the houses you grew up in.

For a few years now, I have been quietly looking for an editor, an IDE1, to retire into. Something that will outlive trends, companies, and licenses. Something I can carry, unchanged, from one machine to the next for the rest of my life. Every time I looked, the final contenders were the same two, as they have been for decades: Vim and Emacs.

When I wrote about Sublime Text, I admitted that I was too lazy to learn either, and that I would probably end up with Vim. Well, I was wrong on both counts. Today, I have decided to give it time, go slow, and take the long journey with Emacs.

The Holy War

I would be lying if I said the choice did not come with a little guilt. Vim and Emacs users have been at it since the 1980s, in what is fondly called the editor war, and it is one of the few wars where nobody has ever lost anything except an afternoon.

The Vim camp likes to say that Emacs is a great operating system, lacking only a decent editor. The Emacs camp replies that Vim users are simply people who have not yet figured out how to quit. Emacs users are accused of having pinkies worn out from holding Control; Vim users are accused of being unable to type a sentence without first pressing Escape, just in case. Richard Stallman even appears, in robe and halo, as Saint IGNUcius of the Church of Emacs, who once declared that using a free version of vi is not a sin but a penance.

I am not picking a camp. I have the utmost respect for both, and for everyone who has spent a lifetime in either. I am only picking a home.

Slow and Minimal

I am not going to install a starter kit, nor copy someone else’s configuration of a thousand lines. I am staying minimal, as little as possible, and I will add to it only when I genuinely miss something. Every line in my configuration should be one I understand and can explain to myself a year from now.

The keyboard shortcuts will take time, and I am fine with that. I want them to settle into my fingers the way the alphabet did, one chord at a time, until I stop thinking about them. No rush. A shortcut learned slowly is one that stays.

My configuration lives with the rest of my dotfiles, and you are welcome to look. It is small, and I hope it stays that way.

Start with the Cards

If you are starting too, here is the one piece of advice I would give. Emacs comes with its own reference cards, as PDFs, inside the installation itself: the Survival Card for the first few days, and the Reference Card for everything after.2 Start there, not with a video or a blog post.

I printed and laminated mine. One stays at home, one at work, and one travels with me. There is something old-fashioned and right about learning a fifty-year-old editor from a card you can hold in your hand.

The Journey

I do not know where this goes. Perhaps in a few years Emacs will be where I write everything, these words included. Perhaps I will come back to this page and laugh at how little I knew. Either way, I will come back to it, and I will update it as I go.

This feels less like switching tools and more like coming home to something I always knew was there.

  1. An Integrated Development Environment, or IDE, is the one program where you write, run, and fix your code, instead of juggling a separate editor, compiler, and debugger. Emacs is, strictly, a text editor, but with the right packages it becomes as much of an IDE as you want it to be, and then some. ↩

  2. Both cards ship with Emacs as PDFs, in its etc/refcards/ folder, as survival.pdf and refcard.pdf, with translations alongside. On a Mac, they are inside the application, at /Applications/Emacs.app/Contents/Resources/etc/refcards/. From within Emacs, C-h v data-directory shows where that etc/ folder is on any machine. The GNU website also keeps them, at gnu.org/software/emacs/refcards. ↩