Simply thinking that the hotkeys are esoteric is missing the entire point of the command structure which is effectively a language for text manipulation. Google for "vim nouns verbs" for some great descriptions.
I'd say that vim makes you faster. It's like talking with your close friend vs talking with a stranger. You understand each other better and can speak very quickly. High bandwidth communication maybe?
Maybe its "working with you"
Two modes: command mode and insert mode
You type in insert mode. You do everything else in command mode. You'll end up doing most work in command mode (well, sort of).
Command mode is centred around verbs, modifiers and nouns (objects).
A typical verb is "d" for delete. Example noun are "w" for word, and "double" for line. So in command mode, "dw" deletes a word, "dd" (you see what I mean by double now) deletes a line.
Yank "y" copies a noun, paste "p" pastes it after the current position.
How do you copy a word? That's right: "yw". A line? That's right, "yy".
For how vim works, see eg:
http://yanpritzker.com/2011/12/16/learn-to-speak-vim-verbs-n...
For how you can become more effective with vim, or any similarly powerful editor, I recommend watching:
"7 Habits for Effective Text Editing 2.0" http://video.google.com/videoplay?docid=2538831956647446078
It's not about the esoteric hotkeys - it's about having a consistent framework and tool set.
When I first started with Linux in the mid 90s I didn't get vim at all. As most people I had a hard time closing the thing when I accidentally opened a file with it -- I seem to recall switching to another virtual terminal and fiddling around with "ps", "grep" and "kill" (I didn't know about pgrep/pkill at the time).
Now I cringe everything I have to use a web browser that doesn't support vimperator/pentadactyl -- and I'm not even much of a vim power user.
edit removed erroneous and confusing reference to "l", some spelling errors.
Just like I've learned to express ideas in various programming languages, I've learned to express ideas in Vim. Those ideas are within the domain of text manipulations. Even if I spent the same overall amount of time manipulating text (I don't) the process of getting from point A to point B is smoother and costs me less mental energy. That energy savings translates into better code.
One thing to note here is that, just as with any other notation, there is a learning curve. You must learn the essential complexities of the problem domain, as well as the accidental complexities of the notation. That learning requires deep understanding of fundamentals, memorization of idiosyncrasies, and practice, practice, practice. This is true in mathematics, spoken languages, written languages, programming languages, sheet music, and all the rest!
> Even if I spent the same overall amount of time manipulating text (I don't)
I'm just saying that faster code editing is a side effect of -- or the aggregate view of -- smoother thinking and faster thought expression.
I think the body of knowledge regarding vi(m) hotkeys would fall under this definition when considering the entire world. I mean no ill will by the description.
Read this for an overview of what makes vim vim:
http://stackoverflow.com/a/1220118
I wrote about some of my favorite commands here: