I do all my development on Linux.
For
editing, nothing can beat vim, IMHO. It's the only text editor I've ever used where my ability to input/move text has outstripped my internal command queue (that is to say, for a second or two I was typing faster than I could think). Hell of a learning curve, but from the long end it's not unlike a direct brain->textfile interface.
For
development, at least Java development, I am currently heavily addicted to Eclipse. It's free, and it integrates enough features and power that I finally begin to understand what all this noise about GUI IDEs is all about.
Being able to immediately *see* compiler errors anywhere in your project anytime you save a file, or run an Ant task by selecting it from a pull-down menu, or do a CVS commit by right-clicking on the root directory of your project and selecting Team->Commit... off the context menu...
I suspect that at least *some* of this functionalilty can be had in vim, but since I haven't yet completed my 10th Dan ranking in vim-fu, I don't know how to do those things. Eclipse makes it eas{y|ier}.