GP isn't talking (just) about jumping between files or function definition. The difference between Vim and regular IDEs is this: in Vim, you notice an arbitrary piece of code on your screen, tap tap, you're there, tap tap, you've transposed it with another piece of code somewhere else in the file, tap tap, you're in another file, tap tap, you're back in the previous file, except it now contains half of the code from that other file, tap tap, now with proper namespacing. All done at the speed of thought - an experienced Vim/Emacs user thinks in semantic steps, not shortcuts. In regular keyboard+mouse approach, you either do operations that perfectly align with automated refactoring capabilities, or just have to click a lot.