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

WindowsmacOSLinuxBSDUnixOpenVMS
Acme
Alphatk
Atom
Arachnophilia
BBEdit
Bluefish
Brackets
Coda
ConTEXT
Crimson Editor
ed
Editra
EmEditor
epsilon
Geany
gedit
GNU Emacs
JED
jEdit
JOE
JOVE
Kate
KEDIT
Komodo Edit
Komodo IDE
KWrite
LE
Light Table
Metapad
mg
MinEd
GNU nano
ne
NEdit

Notepad
Notepad++
nvi
Pico
PSPad
RJ TextEd
Sam
SciTE
SlickEdit
Smultron
SubEthaEdit
Sublime Text
TED Notepad
Textadept
TextEdit
TextMate
TextPad
TextWrangler
The SemWare Editor
UltraEdit
Ulysses (text editor)
vi
Vim
Visual Studio Code
XEmacs
XNEdit


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 instancesSingle document window splittingMDI overlappable windowsMDI tabbed document interfaceMDI 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 checkingRegex-based find & replaceEncoding conversionNewline conversionMultiple undo/redoRectangular block selectionVirtual 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 highlightingFunction listSymbol databaseBracket matchingAuto indentationAuto completionCode foldingText foldingCompiler 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 integrationGUI shell integrationMacro languageCollaborative editingLarge file supportLong line supportMulti-line regex supportSearch 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.
ASCIIISO-8859DOS (OEM)EBCDICUTF-8UTF-16
Acme
Alphatk
Atom
BBEdit
Bluefish
Brackets
Coda
ConTEXT
Crimson Editor
ed
Editra
EmEditor
Geany
gedit
GNU Emacs

JED
jEdit
JOE
JOVE
LE
Kate
KEDIT
Komodo Edit
Komodo IDE
KWrite
Metapad
mined
MS-DOS Editor
Nano
NEdit
Notepad
Notepad++
nvi
Pico
PolyEdit
PSPad
RJ TextEd
Sam
SciTE
SlickEdit
Smultron
SubEthaEdit
TED Notepad
TextEdit
TextMate
TextPad

TextWrangler
The SemWare Editor


Plugin
UltraEdit
VEDIT

vi
Vim
Visual Studio Code
XEmacs
XNEdit

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.
RTLBidi
Acme
Alphatk
Atom
BBEdit
Bluefish
Brackets
Coda
ConTEXT
Crimson Editor
ed
Editra
EmEditor
Geany
gedit
GNU Emacs
JED
jEdit
JOE
JOVE
LE
Kate
KEDIT
Komodo Edit
Komodo IDE
KWrite
Metapad
MS-DOS Editor
mined

Nano
NEdit
Notepad
Notepad++
nvi
Pico
PolyEdit
PSPad
RJ TextEd
Sam
SciTE
SlickEdit
Smultron
SubEthaEdit
TED Notepad
TextEdit
TextMate
TextPad
TextWrangler
The SemWare Editor
UltraEdit
VEDIT
vi
Vim
through
terminal
support
Visual Studio Code
XEmacs
XNEdit

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.
CR/LFLFCR
Acme
Alphatk
Atom
BBEdit
Bluefish
Brackets
Coda
ConTEXT
Crimson Editor
ed
Editra
EmEditor
Geany
gedit
GNU Emacs
JED
jEdit
JOE
JOVE
Kate
KEDIT
Komodo Edit
Komodo IDE
KWrite
LE
Metapad
MS-DOS Editor
mined
Nano
NEdit
Notepad
Notepad++
nvi
Pico
PolyEdit
PSPad
RJ TextEd
Sam
SciTE
SlickEdit
Smultron
SubEthaEdit
Sublime Text
TED Notepad
TextEdit
TextMate
TextPad
TextWrangler
The SemWare Editor
UltraEdit
VEDIT
vi
Vim
Visual Studio Code
XEmacs
XNEdit