vi
, vip
and viper
(ordered by creation date) come built-in with Emacs, all of those emulate VI. vim-mode
is a newer, stand-alone effort to actually emulate Vim, vimpulse
is a set of extras on top of viper
to give one the most useful Vim features. evil
was created as replacement to vim-mode
.
evil
is the most recent project and the only one that's actively developed. Its goal is to emulate the editing model of Vim faithfully, leveraging existing Emacs functionality wherever it can. Personally I'd say it's about 90% complete, because a few newish commands (such as gn
) are missing, some display-related functionality is fairly hard to recreate (like the display of tildes after the end of a file) and it not implementing a Vimscript interpreter or anything beyond the basics of Ex mode. However it is easier to extend and to introspect than the original, the evil-*
extensions are the Emacs equivalent to Vim plugins in nearly all cases (evil-leader
for example would be an exception because it's not necessary to offer considering Emacs keymap support).
Considering evil
is surpassing Vim at points (see :s
and its visual preview or how little effort creating an useful new mode poses), I wholeheartedly recommend it to everyone interested in modal editing for Emacs.