Becoming better at Vim [closed]

I've been using Vim for quite a long time, but I'm at a level where I use insert mode most of the time, and I still use the arrow keys to move around(!).

I feel like I'm not getting the best out of my lovely editor, particularly regarding navigating (especially code), copy & pasting, and doing other manipulations of existing code. (though I am quite comfortable with complicated search/replace patterns).

  • How should I go about learning more?
  • What resources would people recommend?

Solution 1:

"Why, oh WHY, do those #?@! nutheads use vi?" is a nice introduction to "the Vim way", especially about text objects which are one of the most defining features of Vim.

Solution 2:

Here are some awesome screencasts that should give you an idea of what to learn next. There are also videos for intermediate and advanced topics, but the novice ones are in fact the most important.

Also, when I felt that I was stagnating and not really learning "the Vim way", I chose to disable arrow keys in both normal and insert mode. This forces you to use ESC to get somewhere, and makes you think more Vim-like. Ultimately, I enabled arrow keys again in insert mode, but I hardly ever use them. There is, most often, better ways to get around.

map <up> <nop>
map <down> <nop>
map <left> <nop>
map <right> <nop>

And especially

imap <up> <nop>
imap <down> <nop>
imap <left> <nop>
imap <right> <nop>

Solution 3:

  1. type vimtutor on the command line
  2. go into vim, type :help or <F1>
  3. subscribe to mailing list
  4. official vim docs