I was asked by @detronizator how best to get started with vim so I jotted down some hints for vimgins (I know... it's poor).
vim lesson 1
Learn hjkl movement, you can use games like vim-adventures but the best way is just to practice by watching the cursor move as you press the keys. Take care as this may give the impression to people around that you are psychotic. Try out vim browser plugins as well such as vimperator for firefox and vimium for chrome.
vim lesson 2
Learn to use :h <what you need help with> (:h does same as :help), this will help with plugins, installs, colours and pretty much everything else that's wrong with your life, also vim wiki is very useful.
vim lesson 3
Find a cheat sheet like this and stick it on your wall and check out tutorials like vimtutor (:h vimtutor) for more complex movements.
vim lesson 4
Understand the philosophy of vim, this stack overflow answer explains this very well.
vim lesson 5:
Stay in normal mode as much as possible! This isn't amateur hour and we aren't using windows notepad so avoid visual mode, back space and the arrow keys.
vim lesson 6
Use vimrc file, access using ":e $MYVIMRC" from inside vim, try create your own key mappings ("map <keys> <intended keys>"). My favourite is "imap jj <ESC>" so when I tap jj it's the same as pressing escape, although I believe it is frowned upon as vim loyalists says it encourages the use of mode switching rather than sticking in normal mode.
vim lesson 7
If you have command line operations you are continuously doing create a command and use ":system(<command line to execute>)". In the past I used tmux which is similar to GNU screen to mess with command line while in vim and it worked well but now I try configure in vimrc.
vim lesson 8
Look at other peoples vimrc files, there are plenty of "ultimate vim configs" on the interweb like this one. My old config is here it's a bit crap and outdated so I will update it shortly.
vim lesson 9
Good plugins to start out with are NERDTree for navigation, surround for programming, plus the javascript plugin or whatever language you are using (for @detronizator I guess coffeescript) and git if you use a good source management system.
vim lesson 10
Use tagging (":h tag", you can get language specific tag plugins as well), folding and the buffers, with the vim normal mode navigation you can fly around your source code like Neo.
vim lesson 11
Find a nice colour and font, I use ir_black and Proggy Clean.
NOTE The vim setup at github I pointed to in lesson 8 has some funky (and buggy) stuff to get VCCommand committing directories from NERDTree which should be ignored. VCCommand is a plugin that provides generic version control commands which in hindsight I found was more trouble than it's worth.
