I can't really imagine navigating huge Java codebases with vim or bash. OTOH I used vim to work with Perl (that was not a small codebase either but had a very different structure).