I spent almost 3 years working exclusively in vi. I got used to it enough to handcraft my own .vimrc file, use multiple buffers, integrate with ctags, etc etc. I think I was reasonably proficient in vim at that time.
At around that time, I did a coding project with a friend who was an emacs user and when I say him code I thought to myself "Wow, he flies!". That day I dumped vi and went back to emacs. I've never looked back.
Emacs' macros, different modes, integration, shells, etc, etc, let you deal with all sorts of systems in a pleasant way. Learning emacs is a much better investment than vim.