I have used vi for over twenty years and even implemented a couple vi-clones, but I have always had serious reservations about vim. Try adding the following to your .vimrc file:
map <up> iisuckatvi
map <down> iisuckatvi
map <left> iisuckatvi
map <right> iisuckatvi
imap <up> isuckatvi
imap <down> isuckatvi
imap <left> isuckatvi
imap <right> isuckatvi
If the above caused you any discomfort, please stop using vim immediately, and seriously consider learning emacs: You don't know vi-enough for it to matter, and emacs is a lot better once you've learned it.
If you're still as productive as before, then you know vi too well, and using any other editor (as you've likely noted) will seriously and negatively impact your productivity. The rest of this page will probably be helpful to you:
- Turn off syntax hilighting. It's slow. Really slow. And it blocks your keystrokes while it figures it out. Emacs fontification feels much faster.
- set timeoutlen=0 seriously.
- All that directory changing and sshing to remote sites must be counted: Putting vi src/foo.h in your history will make it easier to use your shell with your editor (think: Control+R and type "foo.h")
- Put all your swapfiles in one directory with :set dir so that it's easier to find out what you had open when the worst happens.
- Arrange for all your backups to be in one directory; and use the following so you can have a journal of all your file edits in one place.
au BufWritePre * let &bex = '-' . strftime("%Y%m%d-%H%M%S") . '.vimbackup'
- Embed ^L files between sections of your source files. You can then use :ha to keep sections of your source on separate pages which makes it easier to review. You can also (if you like) arrange for folding to be aware of this.
- Don't use a dozen ttys with vim inside. Use gvim where possible, and sshfs if necessary. gvim has lower latency than vim+gnome-terminal so you'll spend less time waiting for the screen to update.
If you decide you want to try emacs, I'll suggest the following:
- Cold turkey: Don't use viper-mode or vimpulse. They aren't vi-enough, and you'll just end up hating the experience.
- (defalias 'perl-mode 'cperl-mode) ;; I don't know why this isn't the default.
- Join a support group: The emacs wiki is fantastic. You can also try IRC.
- Remember that emacs isn't replacing vim, but vim+shell+aliases+screen, your top ten shell commands, and in some cases your window manager as well. Leave it open, fullscreen if you have to, to help reinforce this.
I can type at around 100wpm, so I thought vi- which allowed for great gains in mobility was the better choice for me. Learning emacs means you type less (however) because you don't have to count things like connecting to the remote server, or running find+grep, or one-line perl-p-i-e lines. Typing less means you get more done.