There are two general kinds of editor that people use when writing. The first is a word processor, the other is a text processor. While word processors are great for organizing books or other documentation with rich text formatting, text editors have an alternate featureset for text manipulation and are typically geared towards programmers. Most text editors are far smaller than commercial word processing tools but have a surprisingly large range of features.
NotePad++ receives a Hot Download Award as one of the best text editors I’ve used recently. Previously, my favourite was NotePad2. Notepad2 is extremely small (loads in a flash) and has some very nice options if you’re just interested in editing non-rich-text files – readmes and the like. NotePad++, on the other hand, adds a huge range of features including syntax highlighting, tabbed document interface, macros, and plugins which allow a vast amount of text transformations and other functions. This editor does almost everything you could possibly want for straightforward programming or related work.
Honourable mentions: NotePad2, of course. PSPad is another free editor with a giant range of features, but takes a second or two longer to load. In my world that counts as second best. Finally, for the absolute ULTIMATE text editor (shareware but worth it if you have the $) is UltraEdit. This latter editor really does do everything under the sun.
Avoid: TextPad. So many people use this tool, it boggles my mind. It’s shareware and far below par when compared to NotePad++. The default hotkey mappings don’t make any sense either. Don’t even bother.