I used to use vim, but then switched to Qt's Creator even for non-Qt projects. VIM is nice when you're just writing a simple program, but for anything complex, I need to be able to find function definitions, jump through several function calls in a few seconds in files I've never seen, and still be fast.
Advantages:
* Autocomplete for functions, variables, classes, etc. (ctrl+space)
* Jump to definition for variables, functions, classes (F2)
* Keyboard-centric searching (search by class, method, filename, etc) (ctrl+K)
* Visual debugging with GDB (attach to sessions, change complex variables, switch threads, etc)
* Has a FakeVIM module;)
* Very fast and rock-solid stable
* Free (both in beer/libre)
* Cross-platform (used it on Linux/Mac/Windows. I prefer it to Visual Studio which is far too slow and has really wonky keyboard shortcuts)
Disadvantages:
* Have to use a windowing system. I still use VIM on remote systems.
There's just so many advantages of having an editor which understands your code model. Forget whether the function you're calling is camelCase or uses_underscores is a thing of the past for me resulting in most of my code compiling the very first time -- and when it doesn't, inline errors!
You can get your OSS fix here.
(For a generic project, just click New->Import Project->Existing project.)