Here is something I wrote recently to help myself learn vi/vim. I refuse to write my code on a Windows machine (which I use as my desktop) and then move it to my Gentoo boxen (where I do my Security work), so I wanted to do all my coding via Putty right on my Linux boxes.
I had to decide which to use - Vim or Emacs. I chose Vim and set out to learn it. This tutorial is the collection of most of what I learned and found valuable. Let me know if it helps you...
http://www.dmiessler.com/study/vim
-Daniel