When I first started using GNU/Linux I was looking for a proper text editor. I only had any experience with Visual Studio on Windows because I was a .Net developer at the time, and didn't really have much of a choice. One of the main things I wanted was an editor that worked in a terminal.
Naturally I came to Vim and Emacs (as well as Nano, and perhaps some others as well). For a few weeks I kept switching between Vim and Emacs. I liked Vim's syntax highlighting better, but on the other hand I liked Emacs' keybindings/modelessness better as well. I ended up going with Emacs mostly because of Vim's moded editing.
For years the thought of Vim's moded editing gave me nightmares. I never really realised the best thing about Vim. Even when a post appears on Stack Overflow about grokking Vim. I was already so blinded by the idea that Emacs was the superior editor for me that I failed to register the information. It took a long time, but eventually I opened up to the possibility of such moded editing. By now I was stuck with Emacs because I just couldn't give up its customizability or extensibility. Also, I've grown to love Lisp, and specifically Emacs Lisp, so to go from that to Vimscript wouldn't be quite ideal.
Eventually I decided I really did want to try it. Thankfully Emacs has
a package for that: Evil, the Extensible Vi Layer for Emacs. There is
one other problem, though: I use the Colemak keyboard layout. The
hjkl keys are more like
hynu, with the up key at the bottom
of the keyboard, down at the top and left and right diagonally from
eachother. Again Emacs has a package for that,
rebinds some of the keys so that Evil will work with the Colemak
keyboard layout. It is based on that the creator of the Colemak layout
used to use in Vim. It's a bit aggressive, so I customized it to be a
little less so, mostly removing rebindigs from the motion and emacs
The real power is in the composability of the commands. In Emacs you
have commands like
forward-kill-char. In Vim you have the
delete operation, which can
be combined with, for example, the
forward-word motion, or the
forward-char motion. I probably have the names wrong,
but hopefully they convey the meaning of what they do. This is what it
is all about, or at least from what I've learned to use so far. Of
course the powerful ed-like editing features called forth through the
ex mode, such as
%s/find/replace. Lastly, of course, the fact
that a lot of editing can be done in normal mode helps in preventing
I haven't yet been able to work with the extensible part, but some of the modules that exist for evil speak volumes of it.
If you are interested in increasing your productivity, or you like to experiment with new things, you might really want to try it. It may not completely be Vim, but it's still completely Emacs. If you use the colemak-evil package as well you'll also notice that in the insert state all your regular Emacs keys work normally, which is a great combination of the two editors. So far I feel that Vim is great for editing existing code and text, but Emacs still feels better when writing a lot of new code or text.