Java and C# were both designed to be used in language specific IDEs (C# inheriting that from Java). Using Java outside of a Java IDE is insane.
C, C++, Python, Ruby, JS, Erlang, Perl, etc, just require a relatively sane text editor, no full scale heavy weight IDE features needed. So, yeah, vim does everything I need there.
"Vanilla" C++ is one thing, but when it comes to using comprehensive frameworks such as Qt or wxWidgets, I guess you have similar reasons (to Java and C# with their "batteries") to use IDE.