edlin --> tired of not seeing available commands or current text --> DOS edit (nice one!) --> Windows was introduced --> notepad --> tired of bad formatting, mulitline support, unix newlines --> wordpad --> tired of drag-and-drop resulting in icons --> borland C++ 5 --> tired of black backgrounds --> borland builder --> tired of useless remapping of keyboard shortcuts, no overview and bad regressions --> VisualJ --> tired of editors generating BAD code and generators in general --> started studying --> emacs --> tired of bad default settings and CTRL+WIN+SHIFT B A G for paste and got forced by working collegues -->
The right tool for the job.
eclipse for Java. Steep learning curve, but great integration of everything I want on big projects, and superb refactor and navigation tools.
Visual Studio when I have to. $!@! Don Box.
gedit for smaller programs in Python - since gedit shines when having more tabs, several languages, and for and being fast and integrating nicely with the desktop.
vim for the rest. Vim is great for fast navigation, searching and editing and makes you feel hobby-l33t. But it requires you to commit to the cause, and study hard :D