For years Vim has been both my editor and "IDE" of choice across all projects, spanning multiple platforms, toolkits and programming languages.
Two features that take Vim from a pleasant editor, to practically an IDE, which I regularly use, are:
Both become infinitely more useful with the addition of "ctags". For almost as many years as I have been using Vim , I have been relying on "exuberant ctags" which, although readily available for all practical Linux distributions, is dead as a doornail.
Old, slow, and lacking in language support, I found trying out alternative editors and even big scary IDEs!
Recently I discovered Universal CTags, a continuation of the dormant "exhuberant ctags" project, now located on GitHub with dozens of updates and fixes. While it's not in the package repositories just yet, it's easy enough to build and install locally.
I recommend trying it out, along with some of the excellent ctags-related functionality you can enable in Vim to make it more than just a text editor.
Note: The colorscheme from the screenshots above is xoria256