I use cscope for intelligent interaction with my code, vim as the primary editor/interface (keybindings for cscope are awesome..) and ddd in an 'always on top' window for building/debugging .. in comparison to my Eclipse (android) environment where I am also working, I think that an easy balance can be made if you use the 'apps as pipes' philosophy that a good vim experience requires ..
It depends on the stack you are working with. Need to work with a big, unfamiliar, badly documented API? Good programmers don't want to be in that kind of situation, but it happens.
For me, cscope+vim+ddd has all the editing/building/debugging power I need .. I think with this combination of tools I can match the prowess of any fat IDE for any degree of 'cruddy project' > 'power codebase' ..
I use cscope for intelligent interaction with my code, vim as the primary editor/interface (keybindings for cscope are awesome..) and ddd in an 'always on top' window for building/debugging .. in comparison to my Eclipse (android) environment where I am also working, I think that an easy balance can be made if you use the 'apps as pipes' philosophy that a good vim experience requires ..