Thursday, 17 March 2011

Alternatives to Windows Notepad for Programmers

When I upgraded to Windows 7 I was horrified to discover the text editor I've been using for years no longer works. After suffering Windows Notepad for a few days I set out on a quest to discover the perfect replacement.

My search criteria is pretty basic:

  • can be installed on a memory stick
  • works with UNIX / DOS end-of-line
  • supports syntax highlighting
  • the ability to edit multiple files
  • supports regular expression search
  • requires less than 10MB disk space

After testing a number of free programmer's editors I discovered several which meet (or almost meet) the requirements:


screenshot of ConTEXT programmer's text editor
ConTEXT is a free programmer's text editor. It boasts a number of useful features include the ability to export code to HTML.

(The thumbnail links to a 800×560px screenshot.)

screenshot of Crimson programmer's text editor
Crimson is a source code editor to replace Windows Notepad. Unfortunately the default colour scheme for syntax highlighting doesn't really distinguish between text, delimiters and constants.

screenshot of gedit programmer's text editor
gedit is the text editor from the GNOME desktop enviroment and is also available for Windows. Unfortunately the standard package lacks regex search and it's a heavyweight, weighing in at 65MB+.

screenshot of jEdit programmer's text editor
jEdit is a Java programmer's text editor and has an active community of developers. Hundreds of plugins are available to add a wide range of features. jEdit is another heavyweight, consuming 25MB+ of diskspace.

screenshot of Notepad++ programmer's text editor
Notepad++ is a replacement for Windows Notepad. Features include code folding and support for numerous plugins developed by Notepad++'s active community.

screenshot of Notepad2 programmer's text editor
Notepad2 is a replacement for Windows Notepad that only installs two files. It features a semi-transparent mode allowing users to keep an eye on other programs while editing full screen. Unfortunately Notepad2 can only edit one file at once.

screenshot of Programmer's Notepad text editor
Programmer's Notepad is a programmer's editor with features including code folding, exporting code to HTML and Python scripting. Programmer's Notepad has an active user community.

screenshot of PSPad programmer's text editor
PSPad is a free programmer's editor. The font selector only shows fixed width fonts which is handy, but I'd like to have the option to use a proportional font. PSPad has a feature to export code to HTML. Requires just over 14MB of disk space.

screenshot of SciTE programmer's text editor
SciTE is the demo for the free Scintilla code editing component (used by several editors listed here) and is available as a single file installation. Supports code folding and exporting code to HTML. Unfortunately changing the settings requires the user to poke around in SciTE's config files.


In the end I've settled for Programmer's Notepad. Which editor are you using and what features do you consider essential? :-)

39 comments:

  1. you upgraded to windows7 on march 17 2011?

    ReplyDelete
  2. Any reason you haven't mentioned vi OR emacs?

    ReplyDelete
  3. I'm using Notepad++, it works for me (html and PHP)...

    ReplyDelete
  4. How about Sublime Text (2)? It's the best lightweight code editor I've ever used. You should definitely give it a try.

    ReplyDelete
  5. worth a look is TextPad - it's nagware but remarkably unnagging :) it's also cheap and has been around for many years. It has completely customizable syntax highlighting, macro recording and scripting, external tools integration, full regex support, search in files and directories, workspaces, clipbooks, many other features it's very nearly a full-blown IDE masquerading as a text editor

    ReplyDelete
  6. I think a lot of these options are disengenious. There is a HUGE difference between jEdit and most others listed here (as an aside, my jedit with heaps of plugins uses only 14mb on disk. your 25+ is odd).

    I'm not a fan of the scintilla component and its very easy to tell which editors use it (they all look and behave identically), which is a shame.

    jedits power is off the charts compared to anything else you have listed.

    It depends what your going for, programmers notepad for no frills fast and syntax highlighting or jedit for power and ability to just copy your .jedit directory from windows to mac to linux and have it behave exactly the same.

    ReplyDelete
  7. I think you forgot E ... It is based on TextMade mecanisms, and have an awesome integration of cygwin.

    But ... it's a bit expensive for a text editor.

    http://www.e-texteditor.com/

    ReplyDelete
  8. vi and emacs aren't mentioned in a review like this because they are among the worst, least productive text editors a developer could choose. vi and emacs are dinosaurs from the past. You don't drive a Ford Model T to work do you?

    vi persists mainly because it is bundled with Linux/Unix and imposed upon developers by system admins who resist installing newer, better editors, such as Pico/Nano.

    ReplyDelete
  9. Geany is also a GTK-based OS text editor. Code completion, regex, etc.

    ReplyDelete
  10. TextPad is worth a look. Also, notepad++ has excellent highlighting support.

    ReplyDelete
  11. UltraEdit?

    www.ultraedit.com

    ReplyDelete
  12. +.5 for UltraEdit if you can afford it - does it all
    +1 for Notepad++ if you can't afford UE - 75% of the functionality for free
    +2 for Metapad as notepad replacement - fast, simple and free

    ReplyDelete
  13. It's ok to omit emacs - but vim? Vim is the editor you want. The one and only :)

    ReplyDelete
  14. Hi,

    I like QEdit and mcedit. Both work well. Another one that works on certain systems is zed (it can be safely considered a QEdit clone for linux only).

    ReplyDelete
  15. if your gonna go down the Zed road, FTE beats it hands down

    ReplyDelete
  16. I've been used EditPlus for years. Quality stuff, although it's $35 for a single user license.

    http://www.editplus.com/

    ReplyDelete
  17. I've settled with conTEXT since I was young and fell in love with the syntax highlighting while playing with Unreal Tournament 2004 mods. The thing I like most about it is that when going between lines it doesn't change the cursors position, and you can delete/paste parts of multiple lines at once.

    ReplyDelete
  18. GVIM. Works on Windows, Mac, Linux, and more. There's also a pure terminal interface available if you're working in that fashion. Comes with dozens of syntaxes built in by default. Learning curve's entertaining, but once you get past that, it makes life unbelievably simple.

    ReplyDelete
  19. I appreciate the time and effort you've put in to search the right and efficient replacement for Windows notepad and listing some of the best ones in this post. I prefer using Notepad++ for the simple reason that I am used to it. This list is a great help to me for reference when required. Bookmarked, RTed. Thanks for sharing :)

    ReplyDelete
  20. I have used SciTE in the past. I have actually added a couple of features to it. The good thing about SciTE is that it is really light-weight, but that also means it doesnt have many features.

    Now I use Notepad++. This is a lot of plugins. I am considering move to something else though because its becoming too heavy. Load times are almost an issue.

    ReplyDelete
  21. EmEditor is quite good too. It's lean, has a variety of plugins available, and it's quick to load up.

    ReplyDelete
  22. I like jEdit. Its' HyperSearch is probably one of its best features.

    It also lets you configure multi-keystrokes for shortcuts which allows me to let it emulate WordStar control sequences (which gives you an idea of how old I am!).

    ReplyDelete
  23. emacs, definitely. If you are a programmer, you owe it to yourself to try to really learn emacs. It's fairly easy to start (you can treat it like notepad, for the most part), but as you start digging into it you discover why people are so fanatical about it.

    First, it's available everywhere. Which means that if next year you discover you need to work on sun workstations or OSX or win7 or linux or some obscure workstation OS, emacs will be there waiting for you.

    Second, it's *deeply* programmable. It's actually a lisp environment (though you don't need to know that to use it), with all but the most basic functionality written in (editable, accessible, commented) lisp. Which means that if you want it to do something it can't currently do, you can add that functionality. Even if it's quite complex.

    The lisp is machine-independent, so again, if you have to work in a different environment, all the functions you wrote can come with you.

    Third, people have been extending the functionality of emacs for literally decades, which means you probably won't actually have to write any lisp to do whatever obscure thing it is you want to do; it's already in there.

    Really. There's a web browser, an email client, a usenet client, an IRC client, support for various instant messaging protocols, tetris, and lots more, all built in elisp.

    But those are all secondary; the primary purpose of emacs is text wrangling, and it excels at it. Far more than any other editor I've ever used. The list of things emacs gives me that I can't live without grows by about 10% per year.

    For instance, incremental search. Hit ctrl-s (C^s in emacs speak), and start typing. emacs matches as you type. If you delete some of what you typed, emacs changes the search appropriately.

    Theres's rectangular selection. Regex-based search and replace. Commands can be bounded to specific regions. There's... the list is endless; I could keep typing this for hours.

    Put it this way. Until you've used emacs for about six months, you'll wonder why anyone ever cared about it. After about six months, you'll realize you're about twice as efficient as you were with normal editors, and getting better. And you'll be glad it's always there for you.

    ReplyDelete
  24. It's non-sensical for "windows" to follow "upgrade" in a sentence.

    ReplyDelete
  25. The list of text editors is pretty endless, see here:

    http://www.texteditors.org/cgi-bin/wiki.pl

    I like several but always fall back to "good old" TDE, which easily fits your (simplistic) requirements though it lacks some more advanced things. But hey, it's quite portable (DOS, Win, Linux), easy to use, and public domain! But note that it's console, not GUI-based. (Deal breaker? Doubt it.)

    http://www.texteditors.org/cgi-bin/wiki.pl?TDE

    ReplyDelete
  26. Hi John,

    I agree with a few commenters... Where is Emacs!? Back in my days of having a Windows machine at home and a Linux machine in the office, I had to find a cross-platform programming editor up to par. I had been forced to use vi in classes 3 years ago... And it didn't fit with me. I had tried Emacs... and didn't grok it. I settled for jEdit, was happy for a while.. Then tried emacs. Gave it a little time. Started to use to edit LaTeX, too. Started to integrate it in my life. Got proficient in writing in it, key commands are now like writing words, I don't even need to think. I wrote my own mode, for typesetting posts for mostlymaths.net (setting the right styles and image types, adding related posts and so on). I lived within emacs for 30 days. I just can't use any other editor, unless I'm forced to do so...

    ReplyDelete
  27. SlickEdit beats all of them. Costs money, but who cares - it's the most important tool I use.

    ReplyDelete
  28. Hello John,

    Most of the time I end up using an IDE, but I think jEdit is great for Java and I use Portable Notepad++ for C# when I don't have Visual Studio installed.

    That said, I spend most of my time in Linux with Eclipse.

    ReplyDelete
  29. Currently for me it's Notepad++, for these premium features in addition the "basic" ones:
    - "Show White Space and TAB" (small dots or small arrows)
    - word completion (default Ctrl-Enter, but I always switch that to Ctrl-Space)
    - keystroke-macro recording, and ability to "execute until end of file"
    - vertical block selection (Alt+Shift) - allows to Del or insert text in multiple lines simultaneously
    - ability to remember spaces/tabs indentation mode choice and width on a per-language basis (e.g. for Makefiles)

    Important note: it uses (yuck) Comic Sans as default font for comments, but this can be overridden in settings ("Global font override" in "Style configurator...").

    ReplyDelete
  30. the os sounds like the real problem.

    ReplyDelete
  31. I use vim, but I'm not religious about it.

    ReplyDelete
  32. I use XCode, but it's OS-X only (it's actually an IDE but that just means you don't need a seperate compiler). Codeblocks for Windows and Linux.

    ReplyDelete
  33. great !!!! i have no words to say about it we just love to play games only but game making ohh yes i saw at www.livetvonlinenews.com there is a clips about making of games how to build it anyway am just game lover only ....

    ReplyDelete
  34. Programmer's Notepad is very very fast - I'll take it

    ReplyDelete
  35. Emeditor is good, one allows to use VBS macro for compile source

    ReplyDelete
  36. Heaven's Notepad doesn't support Unicode.
    It's Michael Hardy's fraud.

    ReplyDelete