Intro

In high school, I was given a Sun 3/60 workstation and given instructions to set everything up and learn how to use vi. “You'll never find a better editor” my boss told me. In retrospect, I think you'll never find a better editing concept, and that's modal editing.

Developers spend far more time reading than they do typing. Breaking reading and writing (or inserting) into two discrete modes seems natural after you take a moment to get used to it. Once you're used to it, there's no going back and that's what always kept me from trying emacs.

Why Even Try Emacs?

Emacs has several advantages over vim including…

A cleaner, easier to update code base

Amazing customization options

Beautiful lisp syntax

Now for all those advantages it is hampered by a finger-breaking, chorded input methodology. Sure you can remap CAPSLOCK to CTRL (and really I should remap it to ESCAPE ) but it still lacks modal editing.

Enter evil mode

This provides most of the vi shortcuts you are used to and modes. For many people, this is a good place to stop. They already know the key combinations, they have modal editing, and they have all the advantages of emacs.

If you want to take it a step further, spacemacs may be for you. Spacemacs is built around a leader key ( SPC ) that starts commands in normal mode. Commands are built from easy to remember, consistent mnemonics like b for buffer, w for window, f for file, etc. Typically repeating the key brings up the most used option:

SPC b b gives a helm buffer dialog to choose which buffer you want to edit

gives a helm buffer dialog to choose which buffer you want to edit SPC f f gives a helm file dialog to choose which file you want to edit

Don't know a command? That's OK, spacemacs is discoverable. Type SPC and a list of the most common commands comes up. Type another character and the most common commands for that section come up. If you want to learn, all you have to do is read.

The Downsides

Spacemacs is huge (especially with the options I chose) and slow to start up. Optimally I would like to run emacs in daemon mode, use it for session management, and spawn all my terminals from inside it. I haven't gotten there yet though.

Also I have encountered at least one issue that required me to change my init.el to get things to work.

Conclusion

I'm currently using spacemacs and enjoying it. This is how I got here: