In my opinion, Vim gives you a very strong editor with basic features, but it's up to you to spice it up with scripts/addons you'll most likely use in your projects. These will probably be different depending on whether you mostly edit scripts, documentation, or files that need to be compiled.
As an example, I use zencoding
for the occasional html/css editing, snipmate
for Textmate-like snippets, and a couple of python-related add-ons (pyflakes
, pep8
, vimpdb
, etc.) for Python coding, which is what I do most often.
Then there are other addons that I don't use often, but I still find them helpful every once in a while, like Dpaste
and ConqueTerm
.
Still, to me, the most useful features of Vim are built-in (time-based undo, quick navigation, range filters, etc.) - things that I couldn't find (or at least are not that easy-to-access) in IDEs. So once you set up your Vim to have the bits and pieces of an IDE that you really need (snipmate
, ctags
...) you can get the benefit from both IDE and console environments.
My use of Vim is console-only, so I can't say how helpful these tools are with Gvim.
Despite all the addon goodness, however, I still find myself running !grep ...
or ^Z + find ...
every now and then.