Comparison of text editors
Template:Short description This article provides basic comparisons for notable text editors. More feature details for text editors are available from the Category of text editor features and from the individual products' articles. This article may not be up-to-date or necessarily all-inclusive.
Feature comparisons are made between stable versions of software, not the upcoming versions or beta releases – and are exclusive of any add-ons, extensions or external programs (unless specified in footnotes).
Overview
Template:Mw-datatableTemplate:Sticky headerTemplate:Sort underTemplate:Sticky table start
Operating system support
This section lists the operating systems that different editors can run on. Some editors run on additional operating systems that are not listed.
Cross-platform
Template:Sticky headerTemplate:Sort under
Natural language (localization)
| Languages supported | |
|---|---|
| nowrap Template:Rh | Acme | English |
| nowrap Template:Rh | AkelPad | English, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish |
| nowrap Template:Rh | Alphatk | English |
| nowrap Template:Rh | Atom | English |
| nowrap Template:Rh | BBEdit | English |
| nowrap Template:Rh | Brackets | English, German, French, Polish(Outdated), Korean, Japanese, Italian, Czech, Dutch, Portuguese, Spanish, Swedish(Outdated) |
| nowrap Template:Rh | Coda | English, German, French, Spanish |
| nowrap Template:Rh | ConTEXT | English, German, French, Polish, Italian, Dutch, Portuguese, Spanish |
| nowrap Template:Rh | Crimson Editor | English |
| nowrap Template:Rh | CudaText | Main: English. Addons: Japanese, French, Polish, Korean, Hungarian (2018), Greek, German (2017), and 9 others |
| nowrap Template:Rh | ed | |
| nowrap Template:Rh | Editra | English, German, French, Polish, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish |
| nowrap Template:Rh | EmEditor | English, German, French, Korean, Japanese, Italian, Dutch, Spanish |
| nowrap Template:Rh | epsilon | English |
| nowrap Template:Rh | Geany | English, German, French, Polish, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish, Hindi |
| nowrap Template:Rh | gedit | English, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish, Hindi |
| nowrap Template:Rh | GNU Emacs | English |
| nowrap Template:Rh | JED | English |
| nowrap Template:Rh | jEdit | English |
| nowrap Template:Rh | JOE[6] | English, German, French |
| nowrap Template:Rh | JOVE | English |
| nowrap Template:Rh | Kate[7] | English, German, French, Polish, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish |
| nowrap Template:Rh | KEDIT | English |
| nowrap Template:Rh | Komodo Edit | English |
| nowrap Template:Rh | KWrite | English, German, Italian, Spanish, Swedish |
| nowrap Template:Rh | Metapad[8] | English, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish |
| nowrap Template:Rh | mined | English |
| nowrap Template:Rh | MS-DOS Editor | English, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish |
| nowrap Template:Rh | Nano | English, German, French, Italian, Portuguese |
| nowrap Template:Rh | NEdit | English |
| nowrap Template:Rh | Notepad | English, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish, Hindi |
| nowrap Template:Rh | Notepad++ | English, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish, Hindi |
| nowrap Template:Rh | nvi | English |
| nowrap Template:Rh | Pico | English, Italian |
| nowrap Template:Rh | PolyEdit | English |
| nowrap Template:Rh | PSPad | English, German, French, Polish, Japanese, Italian, Czech, Dutch, Portuguese, Spanish, Swedish |
| nowrap Template:Rh | RJ TextEd | English, German, French, Polish, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish |
| nowrap Template:Rh | Sam | English |
| nowrap Template:Rh | SciTE[9] | English, German, French (Outdated (1.72)), Polish, Japanese (Outdated (1.62)), Italian, Dutch (Outdated (1.67)), Portuguese (Outdated (1.63)), Spanish, Swedish |
| nowrap Template:Rh | SlickEdit | English |
| nowrap Template:Rh | Smultron | English, German, French, Japanese, Italian, Dutch, Spanish, Swedish |
| nowrap Template:Rh | SubEthaEdit | English |
| nowrap Template:Rh | TED Notepad | English |
| nowrap Template:Rh | TextEdit | English, German, French, Polish, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish |
| nowrap Template:Rh | TextMate | English |
| nowrap Template:Rh | TextPad | English, German, French, Polish (Outdated (4.7.3)), Japanese, Italian(Outdated (4.7.3)), Dutch (Outdated (4.7.3)), Spanish (Outdated (4.7.3)), Portuguese (Outdated (4.7.3)) |
| nowrap Template:Rh | TextWrangler | English |
| nowrap Template:Rh | The SemWare Editor | English |
| nowrap Template:Rh | UltraEdit | English, German, French, Korean, Italian, Spanish, Portuguese, Japanese, Chinese |
| nowrap Template:Rh | VEDIT | English |
| nowrap Template:Rh | vi | English |
| nowrap Template:Rh | Vim | Afrikaans, Catalan, Chinese(Simplified), Chinese(Taiwan), Czech, Danish, Dutch, German, English(UK), English(US), Esperanto, Finnish, French, Irish, Italian, Japanese, Korean, Latvian, Norwegian(Bokmål), Polish, Portuguese(Brazil), Russian, Serbian, Slovak, Spanish, Swedish, Ukrainian, Vietnamese |
| nowrap Template:Rh | Visual Studio Code | English, Bulgarian, Chinese, French, German, Hungarian, Italian, Japanese, Korean, Portuguese, Russian, Spanish, Turkish |
| nowrap Template:Rh | XEmacs | English |
| nowrap Template:Rh | XNEdit | English |
Document interface
Template:Sticky headerTemplate:Sort under
Notes
- Multiple instances: multiple instances of the program can be opened simultaneously for editing multiple files. Applies both for single document interface (SDI) and multiple document interface (MDI) programs. Also applies for program that has a user interface that looks like multiple instances of the same program (such as some versions of Microsoft Word).
- Single document window splitting: window can be split to simultaneously view different areas of a file.
- MDI: Overlappable windows: each opened document gets its own fully movable window inside the editor environment.
- MDI: Tabbed document interface: multiple documents can be viewed as tabs in a single window.
- MDI: Window splitting: splitting application window to show multiple documents (non-overlapping windows).
Basic features
Template:Sticky headerTemplate:Sort under
Programming features
Template:Sticky headerTemplate:Sort under
Notes
- Syntax highlighting: Displays text in different colors and fonts according to the category of terms.
- Function list: Lists all functions from current file in a window or sidebar and allows user to jump directly to the definition of that function for example by double-clicking on the function name in the list. More or less realtime (does not require creating a symbol database, see below).
- Symbol database: Database of functions, variable and type definitions, macro definitions etc. in all the files belonging to the software being developed. The database can be created by the editor itself or by an external program such as ctags. The database can be used to instantly locate the definition even if it is in another file.
- Bracket matching: Find matching parenthesis or bracket, taking into account nesting.
- Auto indentation: May refer to just simple indenting to the same level as the line above, or intelligent indenting that is language specific, e.g., ensuring a given indent style.
- Compiler integration: Allows running compilers/linkers/debuggers from within editor, capturing the compiler output and stepping through errors, automatically moving cursor to corresponding location in the source file.
Extra features
Template:Sticky headerTemplate:Sort under
Large file support:
| Template:Ya | = Larger than 4 GiB (LFS) | Template:Ya2Template:NbspGB | = Larger than 1 GB, not limited by memory |
| Template:Okay | = Limited by available memory | Template:Na (64 KB) | = Some limit less than available memory (give max size if known) |
In general, most text editors do not support large text files. Some restrict themselves to available in-core RAM while others use sophisticated virtual memory management techniques and paging algorithms.[49]
Search in files: Perform search (and possibly replace) in multiple files on disk, for example on a sub-directory and recursively all the directories below it. Similar to grep.
Key bindings
Support for custom key bindings.
Notes, bugs
- Vim: custom maps of Ctrl-1 .. Ctrl-9, Ctrl-0 cannot be set, nor is Control-Shift-<char> distinguished from Ctrl-<char>.[68][69]
- 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.
- Emacs and Pico: pico uses most of Emacs's motion and deletion commands: ^F ^B ^P ^N ^D etc.
Protocol support
Support for editing files over a network or the Internet.
Unicode and other character encodings
To support specified character encoding, the editor must be able to load, save, view and edit text in the specific encoding and not destroy any characters. For UTF-8 and UTF-16, this requires internal 16-bit character support.
Partial support is indicated if: 1) the editor can only convert the character encoding to internal (8-bit) format for editing. 2) If some encodings are supported only in some platforms. 3) If the editor can only display specific character set (such as OEM) by loading corresponding font, but does not support keyboard entry for that character set.
Template:Static row numbersTemplate:Sticky header
Right-to-left and bidirectional text
Support for Right-To-Left (RTL) texts is necessary for editing some languages like Arabic, Persian, Hebrew, and Yiddish and the mixture of left to right (LTR) and RTL known as bi-directional (BiDi) support.
Depending on the algorithm used in the programs it might only render the bidirectional text correctly but may not be able to edit them. (e.g. Notepad++ 5.1.3 shows bidirectional texts correctly but cannot edit it and user should change the text direction to RTL to be able to edit RTL texts correctly.)
Newline support
See also
- Editor war
- Comparison of
- Lists of
Notes
References
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ a b NEdit supports spell checking via a plugTemplate:Nbhin
- ↑ Notepad++ 6.3.3 Template:Webarchive and above support spell checking via the DSpellCheck plugTemplate:Nbhin, which is included with the default package.
- ↑ SubEthaEdit supports advanced block editing, including multi-line typing and non-contiguous block selections.
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Vim has a popular TagList plugTemplate:Nbhin that provides a function list.
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ "Handling large files presents no intrinsic problems for BBEdit, though some specific operations may be limited when dealing with files over 2GB in size." BBEdit FAQs Template:Webarchive.
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b kwrite-devel, Large Files open slowly due to futile Syntax-Highlighting
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Lines longer than ~700 characters frequently cause crashes. KatePart documentation Template:Webarchive (which is also the KWrite documentation, see here Template:Webarchive)
- ↑ metapad FAQ, Loading Large Files
- ↑ Script error: No such module "citation/CS1".Template:Cbignore
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ "TextWrangler is a RAM-based editor, and it uses system memory to hold open files. TextWrangler also represents open documents as Unicode, which uses two bytes for each character. Combined with an internal Mac OS X limitation, this means that you can open files up to 384 megabytes in size." TextWrangler FAQs Template:Webarchive.
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Comparison of Windows Text Editors for Large Files: Text editors for large files
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b pico uses most of Emacs's motion and deletion commands: ^F ^B ^P ^N ^D etc. See Pico: A Unix text editor Template:Webarchive retrieved 2012Template:Nbh01Template:Nbh09.
- ↑ a b GNU Emacs can have Wordstar emulation, with the command M-x wordstar-mode, as found from ws-mode.el retrieved 2017Template:Nbh03Template:Nbh14. See also the "Emulation" section of the previous GNU Emacs manual. The WordStar mode, however, has been obsolete since GNU Emacs 24.5.
- ↑ a b c d Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Kate supports an optional VI Input Mode Template:Webarchive.
- ↑ a b pico (and nano) uses most of Emacs's motion and deletion commands: ^F ^B ^P ^N ^D etc. See Pico: A Unix text editor Template:Webarchive retrieved 2012Template:Nbh01Template:Nbh09.
- ↑ Script error: No such module "citation/CS1".
- ↑ Vedit: Old Unix and QNX versions could emulate Vi 100%. Windows version doesn't come with vi emulation.
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Text Editor Features Template:Webarchive at ConTEXT.cx
- ↑ a b jEdit FTP and SFTP are supported via the FTP plugTemplate:Nbhin.
- ↑ jEdit: "HTTP is supported natively"
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b c d Vim Supported via netrw plugTemplate:Nbhin distributed in the standard Vim installation.
- ↑ a b c d Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".