There are tradeoffs. In my opinion, the text-editing advantages that vim gives me greatly outweigh the advantages that an IDE has over vim. If you haven't used vim before and you switch now, you will not see it as a favorable tradeoff for a while until you get the hang of it. Using vim for all these things requires a command-line friendly mindset for all of the non-text-editing tasks like building, running, searching directories, etc. Really it's not IDEs versus vim, but rather IDEs versus vim + command line.
Some things I give up to use vim over IDEs:
* A nice graphical debugger
* Superior support for symbol lookup (ctags isn't perfect)
* Superior support for autocomplete (given the above)
* Automagical refactoring support (I think these features are way overrated, and many of the most common edits fall under vim's domain)
* Boilerplate generation (even given the copious amounts that Java requires, I've always thought that this was a code-reading problem rather than a code-writing bottleneck)
* Compiler errors as you go
* WYSIWYG GUI design (you could just fire up the IDE when you need this anyway)
Is it possible to have it all at once? Would a plugin for VS/Eclipse/whatever like the other poster suggested allow you to use a vim approach with all of the benefits of a cushy IDE?
I have a feeling that once you learn vim, you'll want this plugin, because it will be infuriating not to have it once the muscle memory is in place. However, I doubt you'll find it even remotely useful unless you've put in the time to learn vim on its own.
Some things I give up to use vim over IDEs:
* A nice graphical debugger
* Superior support for symbol lookup (ctags isn't perfect)
* Superior support for autocomplete (given the above)
* Automagical refactoring support (I think these features are way overrated, and many of the most common edits fall under vim's domain)
* Boilerplate generation (even given the copious amounts that Java requires, I've always thought that this was a code-reading problem rather than a code-writing bottleneck)
* Compiler errors as you go
* WYSIWYG GUI design (you could just fire up the IDE when you need this anyway)