Notepad++ is a free, generic source code editor and Notepad replacement, which supports several programming languages, running under the MS Windows environment.
Some of its popular features are:
Syntax Highlighting and Syntax Folding for C, C++, Java, C#, XML, HTML, PHP, CSS, makefile, ASCII art (.nfo), doxygen, ini file, batch file, Javascript, ASP, VB/VBS, SQL, Objective-C, RC resource file, Pascal, Perl, Python, Lua, TeX, TCL, Assembler, Ruby, Lisp, Scheme, Properties, Diff, Smalltalk, Postscript, VHDL, Ada, Caml, AutoIt, KiXtart, Matlab, Verilog, Haskell, InnoSetup, CMake.
If you have a colour printer, you can print your source code (or whatever you want) in colour. It allows users to define their own language: not only the syntax highlighting keywords, but also the syntax folding keywords, comment keywords and the operators. For most supported languages, users can make their own API list (or download the api files from dowload section). Once the api file is ready, type Ctrl+Space to launch this action. You can edit several documents at the same time.

You have two views at same time. That means you can visualize (edit) 2 different documents at the same time. You can visualize (edit) in the 2 views one document at 2 different positions as well. The modification of document in one view will carry out in another view (i.e. you modify the SAME document when you are in clone mode).
You can search and replace one string in the document by using the regular expression. You can open a document by drag & drop. You can also move your document from a position (or even a view) to another by drag & drop. The user can set the position of the views dynamically (only in 2 views mode : the splitter can be set in horizontal or in vertical). If you modify or delete a file which opened in Notepad++, you will be notified to update your document (reload the file or remove the file).
Download Notepad++ ‘A free, generic open source Editor’ from here.