Comparison of text editors
This article compares notable text editors. It may not be up-to-date or all-inclusive. Comparisons are between stable versions and are exclusive of any add-ons, extensions or external programs unless otherwise noted.
Other features can be listed via the Category of text editor features.
Operating system support
Document interface
The following table identifies the following attributes of an editor that describe its user experience with respect to multiple documents:; Multiple instances: Whether multiple instances of the program can be open at the same time for editing multiple files. Applies both for single-document interface and multiple-document interface. Also, applies for a program that has a user interface that looks like multiple instances of the same program.
; Single document window splitting: Whether a window can be split to simultaneously view different areas of a file.
; MDI overlappable windows: Whether each open document gets its own fully movable window inside the editor environment.
; MDI tabbed document interface: Whether multiple documents can be viewed as tabs in a single window.
; MDI window splitting: Whether supports splitting the application window to show multiple documents.
| Multiple instances | Single document window splitting | MDI overlappable windows | MDI tabbed document interface | MDI window splitting | |
| Acme | |||||
| Alphatk | |||||
| Atom | |||||
| BBEdit | |||||
| Bluefish | |||||
| Brackets | |||||
| Coda | |||||
| ConTEXT | |||||
| Crimson Editor | |||||
| ed | |||||
| Editra | |||||
| EmEditor | |||||
| Geany | Plugin | ||||
| gedit | Plugin | Plugin | |||
| GNU Emacs | |||||
| JED | |||||
| jEdit | |||||
| JOE | |||||
| JOVE | |||||
| Kate | |||||
| KEDIT | |||||
| Komodo Edit | |||||
| Komodo IDE | |||||
| KWrite | |||||
| LE | |||||
| Light Table | |||||
| Metapad | |||||
| mined | |||||
| MS-DOS Editor | |||||
| Nano | |||||
| NEdit | |||||
| Notepad | |||||
| Notepad++ | 2 windows | ||||
| nvi | |||||
| Pico | |||||
| PolyEdit | |||||
| PSPad | |||||
| RJ TextEd | |||||
| Sam | |||||
| SciTE | |||||
| SlickEdit | |||||
| Smultron | |||||
| SubEthaEdit | |||||
| TED Notepad | |||||
| TextEdit | |||||
| TextMate | |||||
| TextPad | |||||
| TextWrangler | |||||
| The SemWare Editor | |||||
| UltraEdit | |||||
| VEDIT | |||||
| vi | |||||
| Vim | |||||
| Visual Studio Code | |||||
| XEmacs | |||||
| XNEdit |
Basic features
| Spell checking | Regex-based find & replace | Encoding conversion | Newline conversion | Multiple undo/redo | Rectangular block selection | Virtual space support | |
| Acme | external | ||||||
| Alphatk | |||||||
| Atom | Plugin | ||||||
| BBEdit | |||||||
| Bluefish | |||||||
| Brackets | Plugin | Plugin | |||||
| Coda | |||||||
| ConTEXT | |||||||
| Crimson Editor | Instant/live | ||||||
| ed | |||||||
| Editra | |||||||
| EmEditor | |||||||
| Geany | Plugin | ||||||
| gedit | Plugin | ||||||
| GNU Emacs | Plugin | ||||||
| JED | |||||||
| jEdit | Plugin | ||||||
| JOE | Plugin | ||||||
| JOVE | |||||||
| Kate | |||||||
| KEDIT | |||||||
| Komodo Edit | |||||||
| Komodo IDE | |||||||
| KWrite | |||||||
| LE | |||||||
| Light Table | Plugin | ||||||
| Metapad | |||||||
| mg | |||||||
| MinEd | |||||||
| MS-DOS Editor | |||||||
| Nano | |||||||
| ne | |||||||
| NEdit | Plugin | ||||||
| Notepad | |||||||
| Notepad++ | |||||||
| nvi | |||||||
| Pico | |||||||
| PolyEdit | |||||||
| PSPad | |||||||
| RJ TextEd | |||||||
| Sam | external | ||||||
| SciTE | |||||||
| SlickEdit | |||||||
| Smultron | |||||||
| SubEthaEdit | |||||||
| Sublime Text | |||||||
| TED Notepad | |||||||
| TextEdit | |||||||
| TextMate | |||||||
| TextPad | |||||||
| TextWrangler | |||||||
| The SemWare Editor | |||||||
| UltraEdit | |||||||
| VEDIT | |||||||
| vi | |||||||
| Vim | |||||||
| Visual Studio Code | Plugin | ||||||
| XEmacs | Plugin | ||||||
| XNedit | Plugin |
Programming features
| Syntax highlighting | Function list | Symbol database | Bracket matching | Auto indentation | Auto completion | Code folding | Text folding | Compiler integration | |
| Acme | external | external | external | ||||||
| Alphatk | |||||||||
| Atom | Plugin | ||||||||
| BBEdit | |||||||||
| Bluefish | |||||||||
| Brackets | Plugin | ||||||||
| Coda | |||||||||
| ConTEXT | |||||||||
| Crimson Editor | |||||||||
| ed | external | ||||||||
| Editra | |||||||||
| EmEditor | Plugin | Plugin | Plugin | ||||||
| Geany | |||||||||
| gedit | Plugin | Plugin | Plugin | Plugin | |||||
| GNU Emacs | |||||||||
| JED | |||||||||
| jEdit | Plugin | Plugin | Plugin | ||||||
| JOE | |||||||||
| JOVE | |||||||||
| Kate | Plugin | Plugin | Plugin | ||||||
| KEDIT | Macro | ||||||||
| Komodo Edit | |||||||||
| Komodo IDE | |||||||||
| KWrite | |||||||||
| LE | |||||||||
| Light Table | |||||||||
| Metapad | |||||||||
| mined | |||||||||
| MS-DOS Editor | |||||||||
| Nano | |||||||||
| ne | |||||||||
| NEdit | Plugin | Plugin | |||||||
| Notepad | |||||||||
| Notepad++ | |||||||||
| nvi | |||||||||
| Pico | |||||||||
| PolyEdit | |||||||||
| PSPad | Plugin | ||||||||
| RJ TextEd | |||||||||
| Sam | external | ||||||||
| SciTE | |||||||||
| SlickEdit | |||||||||
| Smultron | |||||||||
| SubEthaEdit | |||||||||
| TED Notepad | |||||||||
| TextEdit | |||||||||
| TextMate | Plugin | ||||||||
| TextPad | Plugin | ||||||||
| TextWrangler | Plugin | ||||||||
| The SemWare Editor | Plugin | ||||||||
| UltraEdit | |||||||||
| VEDIT | < | ||||||||
| vi | |||||||||
| Vim | Plugin | ||||||||
| Visual Studio Code | |||||||||
| XEmacs | |||||||||
| XNEdit | Plugin | Plugin |
Additional programming features
| CLI shell integration | GUI shell integration | Macro language | Collaborative editing | Large file support | Long line support | Multi-line regex support | Search in files | |
| Acme | Extensible | |||||||
| Alphatk | ||||||||
| Atom | Plugin | ~27MB | ||||||
| BBEdit | ||||||||
| Bluefish | ||||||||
| Brackets | Extensible | |||||||
| Coda | ||||||||
| ConTEXT | ||||||||
| Crimson Editor | ||||||||
| ed | via mkfifo | |||||||
| Editra | 2GB | |||||||
| EmEditor | 16TB | |||||||
| Geany | Plugin | |||||||
| gedit | Plugin | Plugin | ||||||
| GNU Emacs | ||||||||
| JED | Plugins | |||||||
| jEdit | ||||||||
| JOE | ||||||||
| JOVE | ||||||||
| Kate | Plugin | Plugin | ||||||
| KEDIT | ||||||||
| Komodo Edit | ||||||||
| Komodo IDE | ||||||||
| KWrite | ||||||||
| LE | ||||||||
| Light Table | ||||||||
| Metapad | ||||||||
| mined | ||||||||
| EDIT (MS-DOS) | ||||||||
| EDIT (DR-DOS) | 2GB, for as long as there is disk swap space for two temporary files | |||||||
| Nano | ||||||||
| NEdit | ||||||||
| Notepad | ||||||||
| Notepad++ | 2GB | |||||||
| nvi | ||||||||
| Pico | ||||||||
| PolyEdit | ||||||||
| PSPad | with plugin | |||||||
| RJ TextEd | ||||||||
| Sam | external | |||||||
| SciTE | ||||||||
| SlickEdit | 2TB | |||||||
| Smultron | ||||||||
| SubEthaEdit | ||||||||
| TED Notepad | ||||||||
| TextEdit | ||||||||
| TextMate | ||||||||
| TextPad | ||||||||
| TextWrangler | ||||||||
| The SemWare Editor | Only in special DOS multi-user version | 2GB | ||||||
| UltraEdit | ||||||||
| VEDIT | ||||||||
| vi | ~65MB | |||||||
| Vim | with plugin | |||||||
| Visual Studio Code | with plugin | |||||||
| XEmacs | ||||||||
| XNEdit |
Key bindings
Notes:; Vim: Custom maps of Ctrl-1.. Ctrl-9, Ctrl-0 cannot be set, nor is Control-Shift-<char> distinguished from Ctrl-<char>.
; Notepad++: Custom shortcuts of Shift-<char> cannot be set, they need an added modifier such as Ctrl or Alt. i.e. SCI_LINESCROLLUP cannot be bound to "Shift-I"as the "Add"button is greyed out.
; Pico: Pico uses most of Emacs's motion and deletion commands: ^F ^B ^P ^N ^D etc.
Character encoding support
The following table identifies notable character encodings that an editor supports can load, save, view and edit text in the encoding without changing any characters. Partial implies that the editor can only convert the character encoding to internal format for editing, some encodings are supported only in some platforms or the editor can only display a character set by loading corresponding font, but does not support keyboard entry for that character set.Right-to-left and bidirectional text
Support for right-to-left text is necessary for editing some languages like Arabic, Persian, Hebrew, and Yiddish and the mixture of left-to-right and RTL known as bidirectional. The following table indicates whether an editor supports RTL and BiDi text. Some editors can render bidirectional text but does not support editing it.Newline support
The following table identifies newline support of editors. The three options are:; CR/LF: Generally, used on Windows.
; LF: Generally, used on Unix-like systems.
; CR: Generally, used on Classic Mac OS.