Emacs vs. Vim: the choice is obvious

by Paweł Świątkowski
13 Apr 2017

If you are into programming for more than, say, 2 months, you sure have heard about The Holy Editors War. It’s just one of many holy wars out there, but probably most fierce one. I’m talking about conflict between Church of Emacs and Cult of Vim, of course.

For me, as stated in the clickbait title, the choice is pretty obvious. It is: none of them. Or perhaps more precisely: both of them.

My background

In The War I was always taking Vim side, but I had some kind of imposter syndrome about that. You see, I never dedicated a fortnight to polish my .vimrc nor to master all the possibilities that Vim offered. I even never learned to favour hjkl over arrows, sorry. However I was using Vim to make small local changes, was able to move around quite comfortably and generally enjoyed the experience it gave me with that. I knew how to use NERDTree or tabs. That was enough for simple projects.

Emacs is a whole different story. Every time I installed and opened it, I was trying to go though some getting-started tutorial and getting completely lost. It was not for me. I was quite far from hating it, because I never got to know it, but I was never going to join its army.

I March 2016, so more than a year ago, I went to wroc_love.rb. There was a flamewar-panel about editors held during the conference. And like many (if not all) discussion about editors, it steered clearly in a direction of being totally unproductive and changing nothing. At least until someone stood up to show us Spacemacs (sorry man, I didn’t catch your name, but if you read this, know that I’m really thankful). He advertised it as a something in between Vim and Emacs, trying to take the best from both of them.

Spacemacs

After more than a year of using it, I still find myself surprised that The Holy Editor War still exists. Remember the joke?

Emacs is a cool operating system, but it lacks decent text editor.

Well, here it is! Spacemacs is basically Emacs with many additions added on top of it. One of them, of course, is Vim key bindings, which you get from start (if you choose to). But what else is keepeing me there?

  • Sensible defaults – my major problem with Vim is that it comes pretty barren. I managed to put up some useful configurations over the course of the years, but I have to admit that the whole idea is not very attractive. In Spacemacs, instead, you get a lot of opinionated settings from the beginning. At the same time you can change everything to your liking. You just don’t start empty-handed.
  • Speed – it is realtively fast, even on older machines. It’s definitely faster than JetBrains products and it feels faster than Atom with more or less same amount of plugins loaded. It also takes up significanlty less memory.
    Search with The Silver Searcher is absolutely the fastest thing you’ll ever experience. And it comes by default (you just need to install it on your machine and Spacemacs will pick it up as default search engine).
  • Command palette – this is one of most important things. I really don’t want to remember shortcuts for things I do rarely (but on regular basis). I also don’t like to go through help files or docs to find how to do them. Instead, with a simple SPC+: I have a searchable command list, with keybord shortcuts next to them (so I can learn).
  • A lot of plugins available – choose what you like. It’s probably comparably big as the one for Atom or JetBrains. And even if there is no plugin (or layer, how you call them) directly for Spacemacs, you can usually easilly fall back to Emacs extensions.
    As an example, for Elixir you have Alchemist which is widely regarded as best editor suppor for the language in the world.

There is also a couple of small things that apply to my everyday job. For example, it has built-in linters for languages I use, notably Ruby and ECMASript. This allows me to adhere to code standards even if Rubocop or ESLint is not confiugured for the project.

Still, after a year, I’m pretty sure I don’t use it at its full power. I learn (or re-learn) new tricks every couple of days, but for sure I’m much more productive when it comes to mere writing than I ever have been.

So what’s your choice? Still sticking with Vim vs. Emacs debate?

If I caught your attention, you can find more about Spacemacs here. Since a couple of days you can even try how it feels online!

end of the article

Tags: dsp general thoughts

This article was written by me – Paweł Świątkowski – on 13 Apr 2017. I'm on Fediverse (Ruby-flavoured account, Elixir-flavoured account). Let's talk.