The source-code text editor is also very important to the programmer's productivity. I'm not personally fond of any IDE. I prefer to have full control of what's going on under the hood. Furthermore, I'm not inclined to learning or maintaining complex IDE settings or features.
In my opinion, the programmer should be reasonably free to
choose what's most comfortable, flexible and convenient according to
one's personal taste and individual characteristics. What's important is
to get quality code within deadlines and minimal efforts, distractions
or side-issues.
Under Windows I'm particularly fond of TSE (previously QEdit):
If one is under Unix, VIM, or other popular such editors, may be just right. Under DOS, the capacity and features are usually rather limited, even with my editor's (TSE) efficient usage of conventional RAM. So, as it now frequently makes sense for DOS, I virtualize it.. As a consequence, I usually end up mapping (via virtual additions) a host folder to a drive letter, such as P: from where (at the host) I edit the source-code to be compiled from inside the guest. At the host I also assign, usually via the SUBST command, the same drive letter for the folder containing the source-code. I run TSE from the Microsoft ® Windows host.
When using Windows console applications, I suggest the installation of better terminal (raster) fonts. For instance, I recommend using the 6x13 or 7x14 ports from X Windows, which are considerably better shapped, beyond having support for international code pages 850 or 1252. It's a simple matter of copying the fonts to C:\Windows\Fonts and selecting one of them in the TSE launcher:
By the way, let me say that TSE counts on many official or contributed plug-ins.
One of them which I consider very useful, enables the mouse-wheel functionality!
I've been even wondering about developing my own code folding plug-in ;-)
Here's how TSE Pro/32 looks for me: