Depends on whose code I'm editing.
If it's my own, then emacs.
If it's someone else's, then usually vi since I'm probably in a hurry.
IDEs I play with every once in a while, but invariably I hit some silly brick wall where it's better/faster/dareIsayeasier to bring it up in emacs.
I have been using notepad++ on Windows a lot lately, and just wondering what the closest thing to that there is on Linux. It's the only thing I've seen that combines the feature set of emacs with the snappiness of vi while still having a pretty consistent GUI. I have to admint I learned a lot about what emacs can do by discovering features and plugins in notepad++ and Googling how to do that in emacs :-P (speedbar, whitespace-mode)
Sublime Text editor was a lot of fun to play with if only for the multi cursor mode, but there's a great howto on doing the same thing in emacs.