Let's be EViL for a moment

Evil is an extensible vi layer for Emacs. It emulates the main features of Vim, and provides facilities for writing custom extensions. There is an extensive collection of excellent extensions.