Trying Out Spacemacs
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.
Spacemacs
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 editSPC 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:
- vi - I’ll run nvi if I’m feeling nostalgic.
- vim - Know it, loved it, helped children in Uganda.
- neovim - Appreciated the cleaner code, taught me to love terminals in my text editor.
- spacemacs