I guess every computer user in the world has (been) asked that question at least once, and many have invested a lot of time in the quest for the best, if not the perfect, text editor. Apparently many aspects of the problem are a matter of taste, and the fact that the technical environments are changing all the time (and even faster for us programmers than for most other people) doesn’t make it any easier.

I have once again decided that I should have another look at what’s available and I thought it might be a good idea to publish my findings in a way that allows others to benefit from them. I don’t plan to look at all available text editors out there at the same time, but rather to take the time every now and then to look at one or a few and document my findings in a categorised way.

Below I’ll publish the criteria by which I will rate the various contenders. While I was trying to set up that list, I already recognized one problem: I won’t be able to do it at this time. I’m sure there are editors out there that will surprise me with features I didn’t think of at this time, and I might recognize these features as important as time goes on. So I’ll probably re-evaluate the criteria every now and then. Finally, I should note that I’m looking at editors running on Windows, this being my current platform of choice for my desktop systems.

The criteria

Let me say this up front: this is not supposed to be an impartial evaluation. These criteria are my own, not someone else’s. You might have different priorities, and while I’d like to hear about them (feel free to comment), I probably won’t respect them in my evaluations. All distinct criteria will be rated on a scale from 1 to 100. I always find it funny when people say: “I’m using a scale from 1 to 10 and the rating for this item is 7.5.” That’s why I’m going for 1 to 100.

General features, in no particular order

Various entries that don’t seem to fit into any of the special categories below

  1. The editor should start up fast. I don’t really care whether the editor is implemented as an MDI (or tabbed) application or as a single-document application, but obviously the importance of the fast startup is greater with a single-document approach. When I say fast, I mean it should be fast on my 2 GHz laptop, not only on the highest standard machines.

  2. The search/replace function should have support for Regular Expressions. Incremental search would be nice, as well as multi-file operation.

  3. I like to use my text editor as a text viewer, so I often need quick access to configurations like the line wrapping setting. There should be some means to configure the editor for quick access to features like this.

  4. Scrolling and other redrawing functions must be implemented fast, even with big files. I have a multi-head setup on my system with three large displays. One of these is attached to a PCI graphics card, the other two are rotated by a software driver, so neither of these has the performance of last-generation graphics adapters. OTOH, each of my displays is capable of showing full-screen videos, so I know they are fast enough…

  5. The editor should have a low memory footprint. This is more important if a single-document approach is used. I’m not one of those people who want everything in 2MB, but I think an editor is one of the minor tools on my system, even if it’s regularly used, so it shouldn’t use the same amount of memory that Visual Studio or an Office application does.

  6. I’d like to see support for Hex editing, and searching and replacing Hex values should also be possible.

  7. It should be possible to edit big files, at least up to the size of the available memory, without performance issues. I expect that files can have unlimited numbers of lines and columns. Obviously, optimised memory usage would be a good thing, i.e. keep down the allocated bytes/file byte ratio down. Editing files larger than available memory would be a bonus that I’d also like to see.

  8. I expect to be able to use the editor without resorting to the mouse. I don’t want a non-GUI app, though. It would be nice if keyboard bindings were configurable as they are seldom exactly the way anybody wants them.

  9. To edit text, I’d like to see features for formatted text entry. Create bulleted lists, ordered lists, proper word wrapping in indented paragraphs, reformatting of changed paragraphs, …

  10. The editor must support various file formats. I need support for DOS, Unix and Mac line endings and for Unicode (at least UTF-8 and UTF-16) with and without BOM. I would also like to have a switchable codepage for ASCII files. I want to be able to convert files from one of these standards to the relevant others.

  11. I want to be able to carry all my preferences for the editor to another system easily. This may or may not be an integrated function of the editor, but settings shouldn’t be scattered all over the system.

System integration

The editor should be a “real” Windows program of the newest generation.

  1. I expect the program to look like a modern Windows application, modern meaning the standard of Windows XP. This may sound like nitpicking to some, but to me it means that the author(s) keep up to date with current technology and chances are bigger they are not using VB 4 for the product.

  2. The editor should integrate itself into the Windows Explorer context menu to allow me to open any file in it immediately. Registration for a list of file types would also be fine, but I’d like this to be configurable (from the editor, that is). The editor or its installer should do these things automatically.

  3. I use ClearType on all my systems and I expect the editor to be compatible with that. I’m going to test editors with the new Consolas font.

  4. Standard Windows mechanisms should be supported by the editor’s file management. I want to have access to UNC paths and namespace extensions like My Documents.

Syntax highlighting

The editor should be able to syntax highlight my files of various types.

  1. As a minimum, I need highlighting for the following file types: C#, Pascal (Delphi), Perl, HTML, XML, diff and e-mail. I’m sure I’m forgetting something here and I’d like to see much more than that.

  2. Support for highlighting should be able to handle an unlimited number of file types and it should be extensible. I also want to easily assign new file types (by extension) to existing highlighters. It should be possible to create additional highlighters myself.

  3. I would like the editor to implement advanced means of recognizing file types, in addition to standard file extensions. Examples would be standard XML and HTML headers, file type markers as recognized by Emacs, …

  4. I want a comprehensive package that includes support for lots of file types, as opposed to downloading tons of support files myself (which are naturally unsupported by the vendor, if it’s a commercial product).

Extensibility

It would be good if the editor could be programmed in some way, and maybe extended with modules.

  1. It should be possible to automate tasks in the editor, by means of a programming language or a macro system.

  2. It should be possible to extend the editor with modules programmed as separate modules. In this case, it would be good if the module system were compatible with .NET.

Networking

I don’t use this very often, but I’d like to be able to access files across FTP and WebDAV.

Support and community

In the case of commercial products, I’d like to see responsive support services from the vendor. In any event a lively community would be a good thing to see, but this is much more important for free/Open Source products.

Price

I got this last because it’s not supposed to be a very important factor in this evaluation. In this category I’ll rate the “value for money” of the editor.

Feedback, please!

If you know of an editor, or you have created an editor that you give away, for money or for free, please contact me and tell me about it! I’d really like my list to be comprehensive. I’d like to set a limit though, feature-wise: your editor should have something interesting that standard Windows Notepad doesn’t have, to be considered for inclusion. It doesn’t matter if your editor fulfills all the criteria above — I’ll include editors that don’t suit my own needs, as they may suit others’. New articles will be published on my blog, in the Best text editor category. (Edit: the category doesn’t exist anymore, but check out this tag.)