Emacs and I: A 10th Anniversary Post

Have I mentioned how I swear by Emacs when it comes to web development/design? Dubbed “the editor of a lifetime”, Emacs has been around for over 40 years now and is the default editor of many experienced coders. That, in fact, was the reason I decided to give Emacs a shot to begin with. In 2007, I was sick of hopping between the paid but underwhelming Dreamweaver and (equally unimpressive) open source alternatives like Bluefish and Kompozer. It was also a time when I was increasingly convinced that WYSIWYG editors are crutches for amateurs and that professionals need something more solid.

Everyone in the industry had heard of Vim and Emacs, obviously, and for some reason I took a look at Emacs first. After reading through the reviews and the tutorial, I learned that Emacs had a good reputation among professionals and is likely to be supported for the rest of my professional career. (By then, there were veterans in their fifties who have used Emacs for decades.) Sure, the learning curve seemed steep, but I went ahead anyway—I had no better alternative in any case. Every single day for months, I learned and practiced a command on Emacs and slowly started to love it.

Among the things I loved (still do) about Emacs was the fact that it was customizable (green text against black background looks so cool, I decided), can be split instantaneously into multiple windows loading a different file each, can be used as a notepad (I no longer had to open up Notepad just to take notes), an organizer (supporter of Org mode till OneNote), a calendar, a calculator, a terminal, a browser, and lots more. It is also open source and extensible, with hundreds of contributors contributing add-ons to enhance Emacs. If you find something cool on other editors, chances are that the feature is being ported to Emacs, or is on the way.

I must admit that if you are new to Emacs, the commands may seem very unintuitive. (E.g. saving a file requires pressing CTRL + x followed by CTRL + s, instead of the standard CTRL + s.) Then again, it’s like a Windows user who says Macs is unfriendly because it uses different commands. I say, give it a proper try and judge for yourself, especially if you’re unhappy with your current editor.

By now, Sublime Text seems to be the default editor for frontend developers. I’ve tried it myself, and my CTO has tried many times to persuade me to move to it, but it just doesn’t cut it. I mean, I admit Sublime Text is pretty cool, and a very good editor. But, say for instance, when I want to refer to a line at the top of my long JavaScript file, I have to use the mouse (!) to scroll up, remember the code there, then scroll back down to where I was and – if I haven’t forgotten the snippet already – type it out, or hope that the editor will give me the matching hint as I type. It’s at these times that I know: this just ain’t Emacs.

And to prove my point, check out just how easy it is make visual comparisons within the same file on Emacs:

A GIF demo of splitting windows on Emacs on the same file

(So I was going to assign the form’s serialized data to the variable formData, but I couldn’t remember what variable name I had for the jQuery object that stores the form. So I split the window into two, find the variable that was assigned at the top of the file in the top window, and copy it over to the bottom window. All within the same file.)

I think I’ve said/bragged enough. At this time of writing (2016), if you haven’t tried Emacs yet, it’s probably unlikely that you will, given so many cool and totally solid alternatives like Sublime Text out there. So I’m not about to convince you to try. But, just to show off, and to give you something cool to look at, I’m going to publish gifs of how I work on Emacs every now and then, like the one above. Even if you’re not a fan, you’ll probably still end up thinking, wow, now that’s pretty cool.