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
C-a C-f means to hold
Control while pressing
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.
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.
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 f and
My very big advice is when having an issue in Emacs don’t Google it, but
To use the Vim documentation efficiently it is necessary to learn the conventions the documentation uses for different kind of identifiers.
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.
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.
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.
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.