For "go to definition" I use either ctags or cscope. Cscope can work as a front-end and launch -whatever- editor you want. In nvi, I have good interfaces to both cscope and ctags, and I believe most vi clones have ctags interfaces, and emacs has etags.