I’ve been here before, at least twice: drawn like a moth to the Emacs flame, only to be burned again by the formidable challenge of remembering and getting comfortable with so many new keystroke combinations and simultaneously un-learning those which have become muscle-memory over the years. It’s a common tale – there are so many other blog posts like this one.
I’ve decided to run Emacs and Sublime Text (v3) side by side for a while. I use both Windows 7 (at work) and a Macbook Pro (personal) and I plan to use Emacs on both of them, but I can’t face it ‘cold turkey’, even though I know it will take longer this way.
Why do this? Two big reasons:
- Emacs (and perhaps also Vim) will always be around and well supported. It may be 40 years old but it’s still being maintained, improved and extended. Emacs won’t be discontinued, ‘end-of-life’d or abandoned. Sublime Text is a lovely editor – I even paid for a license – but, like many other people, I’m a little concerned that development may have come to a halt and it is not open-source.
- Emacs is almost certainly more powerful than whatever other editor you’re thinking of. Just watch this.
Just two Emacs resources I’ve found useful:
- Mickey Peterson’s awesome series, Mastering Emacs. This is hands down the most useful resource I have found. I dip in and out of interesting articles, keeping notes as I go. It isn’t a methodical way to learn but it’s a lot more fun.
- Emacs Rocks – video tutorials on specific features. One of the most encouraging things for a newbie is to see a live demonstration of how convenient, effective and powerful something can be. It’s the evidence I need sometimes, to continue applying myself.
There is another reasonably big reason: Lisp. I am learning Clojure, which is a dialect of Lisp. What makes Emacs so powerful is that it can be extended and automated through Emacs Lisp, the editor’s internal language. Like Lisp itself, this only looks like an obviously good thing to someone who is already convinced: Emacs and Lisp share this paradox.
Two nice examples of using and extending Emacs to reach well beyond the confines of a mere editor: this one which starts with executing shell commands embedded in the buffer text, capturing the output in the buffer then moving on to controlling a remote VM over SSH from Emacs; and this one which develops a new Emacs mode for interacting with a Cassandra database.
One other thing to pass on: I am pretty sure that the right thing to do is start with vanilla Gnu Emacs, whichever platform you’re on. Don’t be tempted by starter kits or the frighteningly baroque but accomplished (I think…) piece of work which is Emacs Live. On the Mac, I’m using this installer, and not the seemingly populate Aquamacs. Start simple, learn the basics, build up your .emacs incrementally. Understand what you’ve got and how it got there.
I don’t really have the time to learn Emacs properly so I’m just going to pick it up slowly when I can. The rest of the time I’ll use Sublime Text and just deal with the guilt. I know it’s wrong and I probably won’t go to Geek Heaven, but there it is.
Follow-up: after a couple more weeks on/off struggling with Emacs I decided enough was enough. Sometime I might write about what I did next, but would anyone actually want to read yet another dreary account of swapping editors? No, thought not.