Here is a trick that I used to use when I started learning VIM:
- Write down 2-3 tricks/shortcuts in a piece of paper. Put that piece of paper in front of you (ie: tag it to your screen).
- Code with Vim. You'll eventually look at the piece of paper and find some of these shortcuts helpful. So you'll use them.
- After a while, these shortcuts will get into your muscle memory and you'll no longer need the piece of paper.
- When you are coding with VIM, detect annoying patterns: For example, I need to jump code, I need to replace often, I need to be able to select some text this way, I need GIT integration. You get the point.
- Put these observations on a list. Pull 2-3 items (shortcuts) from this list and tag another paper to your screen. Pull 2-3 items (plugins/functionality) and enhance your VIM.
- After a few years, your VIM will become extremely customized. You'll actually have trouble writing code on any other IDE.
- Here is mine: https://github.com/omarabid/vimrc
Other bonus tips:
- Use GIT to keep track of your VIM configuration.
- Write a README file for your configuration. Other things that I should do: Update the README often, and add screenshots.
ps: in case you haven't noticed, I'm a die-hard VIM fan.
> After a few years, your VIM will become extremely customized. You'll actually have trouble writing code on any other IDE.
This would actually be a significant detriment to many Vim and vi users who do system administration, because they can't rely on any customization when the drop into a terminal on a random server.
The one thing I really wish the browsers would adopt is a reliable vi/emacs toggle for text entry windows. Vimium, vimperator, etc, they're never reliably available, always at the mercy of the upstream browser.