Navigation? Use ctags to create a cross reference file for the editor. Press ctrl-] to jump to definition, press ctrl-T go go back.
Having said that, I sometimes use vim for really quick edits to known code, or use the vim plugin for NB, so I get familiar quick keystrokes AND all the outline (navigator), javadoc, debugger and other windows available.
I have written Java in the past, but I don't use the language now. I use exclusively vim features and plugins to do all that things you asked in other languages though. For example I navigate around with HJKL, gg/G, gd, and "".
- How do you refactor code?
- How do you navigate code (e.g. Eclipse will let you click on a class and it'll find the appropriate source file if available)?
- Do you have a sense of whether using vim vs. an IDE affects your efficiency or correctness?
- Do you have an equivalent for things like autocomplete, intellisense, organise imports etc.?
- What are IDE users missing out by not using vim?
- What kind of code do you write e.g. is it a small number of heavily optimised classes or a large number of, say, feature driven classes?