Vim vs Emacs: the details
Aug 16, 2018
4 minute read

Obligatory dotfiles: dotfiles.

Having tried both editors I feel like a lot of interesting things are usually left out when comparing the two. So instead of repeating myself, I’ll list things that are mentioned rarely if ever.

If you are thinking about choosing an editor between those two and have read already a lot about their differences then this article is for you.

Notation used in the article: C-a f is equivalent to pressing Control and the a key at the same time, then releasing both and pressing f. C-a C-f means to hold Control while pressing f and a. M is Alt and S is Shift.

My Background

The first editor I used between those two is Vim. Prior to Vim a have used Sublime Text and Visual Studio. Vim was a revelation. Learning Vim taught me that using the mouse is less efficient than the keyboard and that learning the shortcuts of the editor you’re using, pays off.

I started learning Emacs a month or so ago. Since then, I used Emacs as my main editor and I’m using it right now to write this post.

Philosophy

NOTE: Of course you can customize the behavior of both editors, however, there is still an underlining philosophy that is more evident when using the editor out of the box and even more so in their respective communities.

Vim has a more of a no-mouse-no-arrow-keys type of philosophy. On the other hand, Emacs encourages the use of the arrows keys, but as Vim discourages the mouse use.

On the same note, Vim users tend to minimize the keystrokes they use1 while Emacs ones don’t really care.

Another aspect is the interaction with the outside world. While Vim tries to blend well with other tools, Emacs tries to incorporate them2. Of course, as I said earlier in the note both editors can work with other tools in both ways.

Documentation

Both Vim and Emacs are great at self-documenting even though they do that in different ways.

I found that while it is pretty easy to Google any Vim related issues and find answers faster than looking into the documentation, but the same is not true for Emacs.

In Emacs, not only that it is slower to do so, but sometimes you may even not find what you’re looking for by Googling. The commands that helped me the most where C-h a, C-h v, C-h f and C-h m. My very big advice is when having an issue in Emacs don’t Google it, but C-h it.

To use the Vim documentation efficiently it is necessary to learn the conventions the documentation uses for different kind of identifiers.

Customizing

Vim uses Vimscript as the scripting language3 and Emacs uses Emacs Lisp. Depending on your background you may prefer one or another.

Because of Emacs’ design, you can change almost everything. Vim provides much smaller power in this sense.

Packages

While Emacs has elpa, melpa, melpa stable, gnu, marmalade most used repositories for packages, Vim has only one central repository. Certainly, Emacs adds a bit of complexity with more repositories which may be stumbling block for a beginner. At the same time, it provides more power and flexibility.

Communities

I haven’t really dived deep in neither Vim’s nor Emacs’ communities. Still, this are some differences I can tell.

The first thing to notice is that Vim has a bigger follower base than Emacs. There are a lot of reasons why I think it is like that, but there are highly subjective so I won’t discuss them here.

Another thing I noticed is that the Emacs community encourages to make the editor behave the way you want. The Vim community, on the other hand, encourages to accommodate to the way your editor works because it’s designed to do the particular task more efficiently.

A thing that stood out to me is there seems to be a bigger number of Vim purists4 than Emacs ones. The Emacs community encourages to install packages more when Vim encourages to use the out of the box way of doing things.

Conclusion

If you have the time, I would recommend you to learn both. First, it certainly won’t hurt. Second, you’ll get the best out of both worlds. Third, it makes sense to spend a couple months doing this if you’ll later use the editor you chose for years. Those two editors stand the test of time, so it’s highly probable they will still be relevant for some decades.

In the end, it doesn’t really matter what editor you’ll choose. What matters is the things you’ll do with that editor.


  1. see Vimgolf [return]
  2. this is why some joke about Emacs being an operating system, some people even took the joke seriously [return]
  3. this is no longer true in the latest vim versions [return]
  4. “purists” are people who use the particular editor out of the box without any packages installed. [return]


comments powered by Disqus