I'd go with Chris: small stuff, use some text editor and gcc; medium projects, a text editor with syntax highlight and gcc; large projects.. Er... well either Eclipse or Netbeans, although i'm kind of allergic to java-based stuff.
Emacs and vi(m) suck!! Eheh :) -- Nuno Magalhães