Emacs vs. Vim

This is a follow up on my previous post.

This comparison is necessarily biased as a consequence of my evaluation methodology, which was as follows. For the features/functions that I most commonly use in Vim, I tried to identify the equivalent operations in Emacs. I’m certain that an Emacs user doing a similar exercise with Vim would exhibit a similar bias towards Emacs.

Websites

(http://www.vim.org, http://www.gnu.org/software/emacs)

  • the Emacs website looks more crisp. However, it also looks more like a website for GNU, rather than for Emacs. EmacsWiki is a great resource, but there is still no central repository for color styles, plugins, modes etc.
  • the Vim website is admittedly very retro. But it is largely the de facto location for obtaining color schemes and plugins. Better yet, there is a reasonable rating mechanism in place, so it is easy to identify the popular stuff, things that have been recently added and/or updated.

Winner: Vim

Distribution size

Here is the output of “dpigs -n 1000 | egrep ‘emacs|vim’”:

62364 emacs23-common
24672 vim-runtime
13288 emacs23
2280 vim-gnome
828 vim-tiny
532 emacs23-bin-common
376 vim-common

So the Emacs distribution is roughly three times the size of the Vim distribution.

Winner: Vim

Modal editing

I’m a firm believer in the power of modal editing. Vim wins here by definition. The Viper-mode in Emacs is not terrible, but falls far short of Vim.

Tool integration

Both Vim and Emacs are pretty fast (I did an unscientific test using some books from Project Gutenberg). However, Emacs uses ispell and the integration is superb. Likewise, the GDB integration of Emacs is far superior than that of Vim.

Winner: Emacs

Non-editing tasks

If you want to stay within your editing environment as much as possible, Emacs outshines Vim by a long margin. Be it browsing, emails, reading news, chatting, using the shell, playing games and pretty much anything else — you can probably do it from within Emacs.

Winner: Emacs

User Interface

One of the biggest reasons I use Vim is that the UI is consistent whether I’m in the GUI mode or the console mode. Everything, and I do mean everything — from split windows, to tabs, to pop-up completion — works in pretty much the exact same way. I can work in GUI mode at work, save my session, come back home and reconnect my session in console mode and I hardly notice the difference.  Vim has also always used standard UI toolkits and libraries (such as GTK and Xft). Until as recently as Emacs 22, Emacs only partially used native GTK and Xft for font renderings. So one of the first things I would notice whenever I tried Emacs was how ugly it looked. This does not seem to be an issue anymore though — Emacs23 looks and feels very much like a native GTK app. The console mode also seems very functional, although I must admit I haven’t tested it as thoroughly as I’ve tested Vim’s console mode.

One thing does stand out though — Emacs still does not have a  native implementation of tabbed editing.

I have also gotten several first-hand accounts from people who switched from Emacs to Vim and reported significantly reduced wrist problems. This is not a fundamental issue though — you can always use custom keybindings on Emacs. But out of the box, Vim seems to be more finger/wrist friendly.

Winner: Vim

Conclusion

I had really hoped that Emacs would be a slam dunk — I was ready for some change. But I’ve reluctantly concluded that as things stand, I probably still prefer Vim. The overhead of mastering Emacs enough to be as productive as I’m in Vim right now seems to far outweigh the benefits Emacs might provide over Vim (if any). Nonetheless, I’m not happy with where Vim is headed, as I’ve said before.

Reblog this post [with Zemanta]
Posted in

Leave a Reply