I never thought much of vi until 2000 when I saw an old hand Unix guy rip open some config file on aLinux box with it off the console and tear around the thing so fast I couldn't even tell what he was doing.
A little bit after that I started using vim, ditching Emacs in the process, just because I was working in a language that Emacs didn't understand (ColdFusion) and vim gave me a good way to indent and unindent large chucks of code by raw tab spaces.
I never looked back. When I left the land of *nix and Java in 2007 and went back to Microsoft doing mostly .Net coding I actually found something called ViEmu that gives you vim like functionality within Visual Studio. Loved it.
I honestly can't go more than a few months without needing vim for something or another. It's that good.