Comparison of text editors
From Wikipedia, the free encyclopedia
This article compares notable text editors. It may not be up-to-date or all-inclusive. Comparisons are between stable versions (not upcoming or beta releases) 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.
General attributes
| Name | Developer | Initial release | Latest release | Programming language | Cost (US$) | License | GUI | TUI or CLI | |
|---|---|---|---|---|---|---|---|---|---|
| Version | Date | ||||||||
| Acme | Rob Pike | 1993 | Plan 9 and Inferno | C | No cost | MIT GPL-2.0-only LPL-1.02 |
|||
| Alphatk | Vince Darley | 1999 | 8.3.3[1] |
2004-12-10 | $40 | Proprietary, with BSD components | |||
| Atom | GitHub | 2014 | 1.63.1[2] |
2022-11-23 | HTML, CSS, JavaScript, C++ | No cost | MIT | ||
| BBEdit | Rich Siegel | 1992 | 15.5.2[3] |
2025-07-15 | Objective-C, Objective-C++ | No cost for most features, $49.99 for full version | Proprietary | ||
| Bluefish | Bluefish Development Team | 1999 | 2.4.1[4] |
2026-04-03 | C | No cost | GPL-3.0-or-later | ||
| Brackets | Adobe Systems | 2012 | 2.2.1[5] |
2023-03-22 | HTML, CSS, JavaScript, C++ | No cost | MIT | ||
| Coda | Panic | 2007 | Objective-C | $99 | Proprietary | ||||
| ConTEXT | ConTEXT Project Ltd | 1999 | Object Pascal (Delphi) | No cost | BSD-3-Clause | ||||
| Crimson Editor | Ingyu Kang | 1999 | 3.72-r286m[6] |
2011-10-01 | C++ | No cost | Proprietary | ||
| ed | Ken Thompson | 1970 | unchanged from original | C | No cost | ? | |||
| Editra | Cody Precord | 2007 | 0.7.20 | 2013-01-05 | Python | No cost | wxWindows license | ||
| EmEditor | Emurasoft, Inc. | 1997 | 21.3.0 | 2021-11-24 | C++ | $39.99 | Shareware | ||
| epsilon | Lugaru Software | 1984 | 14.00[7] | 2020-10-20 | C | $250 | Proprietary | ||
| FeatherPad | Pedram Pourang | 2016 | 1.4.1[8] |
2023-06-12 | C++, Qt | No cost | GPL-3.0-or-later | ||
| FocusWriter | Graeme Gott | 2008 | 1.8.13[9] |
2025-08-18 | C++, Qt | No cost | GPL-3.0-or-later | ||
| gedit | GNU Project | 2000 | 49.0[10] |
2026-01-16 | C | No cost | GPL-3.0 | ||
| Geany | Enrico Tröger | 2005 | 2.1.0[11] |
2025-07-06 | C, GTK+ | No cost | GPL-2.0-or-later | ||
| GNU Emacs | Richard Stallman | 1984 | 30.2[12] |
2025-08-14 | C, Emacs Lisp | No cost | GPL-3.0-or-later | ||
| GNU nano | Chris Allegretta | 1999 | 8.7.1[13] |
2026-02-04 | C | No cost | GPL-3.0-or-later | ||
| IA Writer | Information Architects | 2010.09.22 | 7.2 | 2025-08-25 | Objective-C (iOS), Objective-C (macOS), C# (Windows), Java (Android) | $29.99 | Proprietary | ||
| JED | John E. Davis | 1992 | 0.99-19 |
2009-12-13 | C, S-Lang | No cost | GPL-2.0-or-later | ||
| jEdit | Slava Pestov | 1998 | 5.7.0[14] |
2024-08-03 | Java | No cost | GPL-2.0-or-later | ||
| JOE | Joseph Allen | 1988 | 4.6[15] |
2018-01-09 | C | No cost | GPL | ||
| JOVE | Johnathon Payne | 1983 | 4.17.5.5[16] |
2025-05-14 | C | No cost | JOVE license | ||
| Kate | KDE Project | 2000-12 | 25.12.2[17] |
2026-02-01 | C++ | No cost | LGPL, MIT | ||
| KEDIT | Mansfield Software Group, Inc. | 1983 | 1.6.1 | 2016-12-05 | C | $129 | Proprietary | ||
| Komodo Edit | Activestate | 2007 | 12.0.1[18] |
2020-02-10 | Python, JavaScript, Perl, Tcl, PHP, Ruby | No cost | MPL, GPL, LGPL | ||
| Komodo IDE | Activestate | 2001 | Python, JavaScript, Perl, Tcl, PHP, Ruby | $295 | Proprietary | ||||
| KWrite | KDE Project | 2000 | 24.12.1[19] |
2025-01-09 | C++ | No cost | LGPL | ||
| LE | Alexander V. Lukyanov | 1997 | 1.16.8[20] |
2021-02-05 | C++ | No cost | GPL-3.0-or-later | ||
| Leo | Edward K. Ream | 1996 | 6.7.6[21] |
2023-12-19 | Python | No cost | MIT | ||
| Light Table | Chris Granger | 2012 | 0.8.1[22] |
2016-01-22 | ClojureScript | No cost | MIT | ||
| mcedit | Miguel de Icaza | 1994 | 4.8.33[23] |
2025-01-23 | C, Python, PHP, Javascript, Perl, Tcl, Ruby | No cost | GPL-3.0-or-later | ||
| Metapad | Alexander Davidson | 1999 | 3.6[24][25] |
2011-05-28 | C | No cost | GPL-3.0-or-later | ||
| mg | Dave Conroy | 1986 | current[a] | 2020-07-22 | C | No cost | Public domain | ||
| MinEd | Thomas Wolff | 1992 | 2022.27 | 2022-12-23 | C | No cost | GPL | ||
| MS-DOS Editor | Microsoft | 1991 | 2.0.026 | Bundled with MS-DOS, Microsoft Windows | Proprietary | ||||
| ne | Sebastiano Vigna Todd Lewis Daniele Filaretti |
1993 | 3.3.4[27] |
2025-02-06 | C | No cost | GPL-3.0-or-later | ||
| NEdit | Mark Edel | 1991 | 5.7[28] |
2017-02-08 | C | No cost | GPL-2.0-or-later | ||
| Notepad | Microsoft | 1985 | 11.2302.16.0 | MASM (originally) | Bundled with Microsoft Windows | Proprietary | |||
| Notepad++ | Don Ho | 2003-11-25 | 8.9.3[29] |
2026-03-26 | C++ | No cost | GPL-3.0-or-later | ||
| nvi | Keith Bostic | 1994 | 1.81.6[30] |
2007-11-18 | C | No cost | BSD-3-Clause | ||
| Pico | University of Washington | 1992 | 4.64 | C | No cost | Apache-2.0 | |||
| PolyEdit | PolySoft Solutions | 1998 | 5.4 | 2010‑04‑07 | $27.95 | Shareware | |||
| PSPad | Jan Fiala | 2002 | 5.5.1[31] |
2025-02-05 | Object Pascal (Delphi) | No cost | Proprietary | ||
| RJ TextEd | Rickard Johansson | 2004 | 15.63[32] |
2022-09-29 | Object Pascal (Delphi) | No cost | Proprietary | ||
| Sam | Rob Pike | 1980s (early) | stable | C | No cost | LPL (OSI approved) | |||
| SciTE | Neil Hodgson | 1999 | 5.5.4[33] |
2024-12-18 | C++ | $41.99 for macOS. No cost for others | HPND | ||
| SlickEdit | SlickEdit, Inc. | 1988 | 28.0.1 | 2024-01-21 | C, Slick-C | $299 | Proprietary | ||
| Smultron | Peter Borg | 2004 | 12.0.6 |
2020-01-03 | Objective-C | $7.99 | Proprietary | ||
| SubEthaEdit | TheCodingMonkeys | 2003 | 5.2.4[34] |
2022-01-08 | No cost | MIT | |||
| Sublime Text | Jon Skinner, Sublime HQ | 2008 | 4 (Build 4200)[35] |
2025-05-21 | C++, Python | $99 | Shareware | ||
| TED Notepad | Juraj Simlovic | 2001 | 6.3.1[36] |
2021-12-01 | C | No cost | Proprietary | ||
| Textadept | Mitchell | 2007 | 12.9[37] |
2025-10-01 | C, Lua | No cost | MIT | ||
| TextEdit | Apple Inc. | 2001 | 1.18 |
2022-10-24 | No cost (also bundled with macOS) | BSD-3-Clause | |||
| TextMate | MacroMates | 2004-10-10 | 2.0.23[38] |
2021-10-12 | Objective-C++ | No cost | GPL-3.0-or-later | ||
| TextPad | Helios Software Solutions | 1992 | 9.3.0[39] |
2023-08-01 | $30.00 (£16.50) | Shareware | |||
| TextWrangler | Bare Bones Software | 2003 | 5.5.2 | 2016-09-20 | No cost | Proprietary | |||
| The SemWare Editor | Sammy Mitchell | 1985-11 | 4.49[40] |
2023-01 | C, SAL | No cost | BSD-2-Clause | ||
| UltraEdit | IDM Computer Solutions | 1994 | 25.0 | 2018-03-12 | C++ | $99.95 | Proprietary | ||
| VEDIT | Ted Green, Greenview Data | 1980 | 6.24.2 | 2015-01-12 | Assembly, C | $89 standard, $239 Pro64 | Proprietary | ||
| vi | Bill Joy | 1976 | 3.7 | C | No cost | BSD-4-Clause or CDDL | |||
| Vim | Bram Moolenaar | 1991 | 9.2[41] |
2026-02-14 | C, Vim script | No cost | Vim | ||
| Visual Studio Code | Microsoft | 2015 | 1.113[42] |
2026-03-25 | JavaScript, TypeScript | No cost | Source code: MIT[43] Binaries built by Microsoft: Proprietary[44][45] |
||
| XEmacs | Lucid Inc. | 1991 | 21.4.25[46] |
2026-01-12 | C, Emacs Lisp | No cost | GPL-2.0-or-later | ||
| XNEdit | Olaf Wintermann | 2018 | 1.5.2 | 2023-10-05 | C | No cost | GPL-2.0-or-later | ||
Operating system support
| Windows | macOS | Linux | BSD | Unix | OpenVMS | |
|---|---|---|---|---|---|---|
| Acme | Partial [b] |
|||||
| Alphatk | ||||||
| Atom | ||||||
| Arachnophilia | ||||||
| BBEdit | ||||||
| Bluefish | ||||||
| Brackets | ||||||
| Coda | ||||||
| ConTEXT | ||||||
| Crimson Editor | ||||||
| ed | Partial [c] |
|||||
| Editra | ? | ? | ? | |||
| EmEditor | ||||||
| epsilon | [47] |
|||||
| Geany | ||||||
| gedit | [d] |
|||||
| GNU Emacs | ||||||
| JED | ||||||
| jEdit | ||||||
| JOE | ||||||
| JOVE | ||||||
| Kate | ||||||
| KEDIT | ||||||
| Komodo Edit | ? | ? | ||||
| Komodo IDE | ? | ? | ||||
| KWrite | ||||||
| LE | Partial [c] |
|||||
| Light Table | ||||||
| Metapad | ||||||
| mg | ? | |||||
| MinEd | ||||||
| GNU nano | ||||||
| ne | Partial [c] |
|||||
| NEdit | Partial [c] |
[e] |
||||
| Notepad | ||||||
| Notepad++ | ||||||
| nvi | ||||||
| Pico | ||||||
| PSPad | ||||||
| RJ TextEd | ||||||
| Sam | Partial [b] |
|||||
| SciTE | [e] |
|||||
| 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 | Partial [c][f] |
[e] |
Natural language (localization)
| Languages | |
|---|---|
| Acme | English |
| Alphatk | English |
| Atom | English |
| BBEdit | English |
| Brackets | English, German, French, Polish(Outdated), Korean, Japanese, Italian, Czech, Dutch, Portuguese, Spanish, Swedish(Outdated) |
| Coda | English, German, French, Spanish |
| ConTEXT | English, German, French, Polish, Italian, Dutch, Portuguese, Spanish |
| Crimson Editor | English |
| ed | |
| Editra | English, German, French, Polish, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish |
| EmEditor | English, German, French, Korean, Japanese, Italian, Dutch, Spanish |
| epsilon | English |
| Geany | English, German, French, Polish, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish, Hindi |
| gedit | English, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish, Hindi |
| GNU Emacs | English |
| JED | English |
| jEdit | English |
| JOE[48] | English, German, French |
| JOVE | English |
| Kate[49] | English, German, French, Polish, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish |
| KEDIT | English |
| Komodo Edit | English |
| KWrite | English, German, Italian, Spanish, Swedish |
| Metapad[50] | English, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish |
| mined | English |
| MS-DOS Editor | English, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish |
| Nano | English, German, French, Italian, Portuguese |
| NEdit | English |
| Notepad | English, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish, Hindi |
| Notepad++ | English, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish, Hindi |
| nvi | English |
| Pico | English, Italian |
| PolyEdit | English |
| PSPad | English, German, French, Polish, Japanese, Italian, Czech, Dutch, Portuguese, Spanish, Swedish |
| RJ TextEd | English, German, French, Polish, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish |
| Sam | English |
| SciTE[51] | English, German, French (Outdated (1.72)), Polish, Japanese (Outdated (1.62)), Italian, Dutch (Outdated (1.67)), Portuguese (Outdated (1.63)), Spanish, Swedish |
| SlickEdit | English |
| Smultron | English, German, French, Japanese, Italian, Dutch, Spanish, Swedish |
| SubEthaEdit | English |
| TED Notepad | English |
| TextEdit | English, German, French, Polish, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish |
| TextMate | English |
| 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)) |
| TextWrangler | English |
| The SemWare Editor | English |
| UltraEdit | English, German, French, Korean, Italian, Spanish, Portuguese, Japanese, Chinese |
| VEDIT | English |
| vi | English |
| 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 |
| Visual Studio Code | English, Bulgarian, Chinese, French, German, Hungarian, Italian, Japanese, Korean, Portuguese, Russian, Spanish, Turkish |
| XEmacs | English |
| XNEdit | English |
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 (one in each instance). Applies both for single-document interface (SDI) and multiple-document interface (MDI). Also, applies for a program that has a user interface that looks like multiple instances of the same program (such as some versions of Word).
- 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 (non-overlapping windows).
| 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 | Plug‑in |
||||
| gedit | Plug‑in[g] |
Plug‑in[h] | |||
| GNU Emacs | [i][j] |
||||
| JED | |||||
| jEdit | |||||
| JOE | [k] |
||||
| JOVE | |||||
| Kate | |||||
| KEDIT | |||||
| Komodo Edit | |||||
| Komodo IDE | |||||
| KWrite | |||||
| LE | |||||
| Light Table | |||||
| Metapad | |||||
| mined | [l] |
||||
| MS-DOS Editor | |||||
| Nano | |||||
| NEdit | |||||
| Notepad | |||||
| Notepad++ | 2 windows | ||||
| nvi | |||||
| Pico | |||||
| PolyEdit | |||||
| PSPad | |||||
| RJ TextEd | |||||
| Sam | |||||
| SciTE | [m] |
||||
| SlickEdit | |||||
| Smultron | |||||
| SubEthaEdit | |||||
| TED Notepad | ? | ? | ? | ? | |
| TextEdit | |||||
| TextMate | |||||
| TextPad | |||||
| TextWrangler | |||||
| The SemWare Editor | |||||
| UltraEdit | |||||
| VEDIT | |||||
| vi | |||||
| Vim | [n] |
[o] |
|||
| Visual Studio Code | |||||
| XEmacs | |||||
| XNEdit |
Basic features
Programming features
| Syntax highlighting | Function list | Symbol database | Bracket matching | Auto indentation | Auto completion | Code folding | Text folding | Compiler integration | |
|---|---|---|---|---|---|---|---|---|---|
| Acme | external[p] |
external[p] |
Partial [an] |
external[p] | |||||
| Alphatk | ? | ? | |||||||
| Atom | Plug‑in | ||||||||
| BBEdit | |||||||||
| Bluefish | [ao] | ||||||||
| Brackets | Plug‑in | ||||||||
| Coda | |||||||||
| ConTEXT | ? | ? | |||||||
| Crimson Editor | Partial [ap] |
||||||||
| ed | external[aq] | ||||||||
| Editra | ? | ? | ? | ? | ? | ||||
| EmEditor | Plug‑in |
Plug‑in |
Plug‑in[ar] |
||||||
| Geany | [as] |
Partial | |||||||
| gedit | Plug‑in |
Plug‑in |
Plug‑in |
Plug‑in[at] |
[au] | ||||
| GNU Emacs | |||||||||
| JED | |||||||||
| jEdit | Plug‑in |
Plug‑in |
Plug‑in | ||||||
| JOE | ? | ? | |||||||
| JOVE | |||||||||
| Kate | Plug‑in |
Plug‑in |
Plug‑in | ||||||
| KEDIT | Macro |
||||||||
| Komodo Edit | |||||||||
| Komodo IDE | |||||||||
| KWrite | ? | ? | |||||||
| LE | [av] | ||||||||
| Light Table | Partial [aw] | ||||||||
| Metapad | |||||||||
| mined | [ax] |
? | |||||||
| MS-DOS Editor | |||||||||
| Nano | |||||||||
| ne | |||||||||
| NEdit | Plug‑in |
Plug‑in |
|||||||
| Notepad | |||||||||
| Notepad++ | [ay] |
[65][66] |
[az] |
||||||
| nvi | ? | ||||||||
| Pico | |||||||||
| PolyEdit | |||||||||
| PSPad | Plug‑in |
||||||||
| RJ TextEd | |||||||||
| Sam | external[ah] | ||||||||
| SciTE | [ba] |
? | |||||||
| SlickEdit | |||||||||
| Smultron | ? | ? | ? | ||||||
| SubEthaEdit | ? | ? | |||||||
| TED Notepad | ? | ? | |||||||
| TextEdit | |||||||||
| TextMate | Plug‑in |
[bb] |
|||||||
| TextPad | Plug‑in[bc] |
||||||||
| TextWrangler | Plug‑in[bd] | ||||||||
| The SemWare Editor | Plug‑in[67] |
[be] |
Partial [bf] |
||||||
| UltraEdit | Partial [bg] |
||||||||
| VEDIT | <[bh] |
||||||||
| vi | |||||||||
| Vim | Plug‑in[68] |
||||||||
| Visual Studio Code | |||||||||
| XEmacs | ? | ||||||||
| XNEdit | Plug‑in |
Plug‑in |
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 | [bi] |
? | ? | ? | ? | |||
| Atom | [69] |
? | Plug‑in[70] |
Soft-wrapping | [71] |
|||
| BBEdit | [bj] |
memory [72] |
||||||
| Bluefish | ? | ? | ? | ? | ||||
| Brackets | Extensible |
? | Partial | |||||
| Coda | [bk] |
? | ? | |||||
| ConTEXT | memory [bl] |
? | ? | |||||
| Crimson Editor | ? | ? | ||||||
| ed | via mkfifo |
? | ? | ? | ||||
| Editra | ? | ? | ? | ? | 2 GB |
? | ? | ? |
| EmEditor | 16TB |
? | ||||||
| Geany | ? | Plug‑in |
? | ? | ? | |||
| gedit | [bm] |
Plug‑in |
? | Plug‑in[73] | ||||
| GNU Emacs | 2.3 EB[74][75][76][77] | |||||||
| JED | memory [78] |
Plug‑ins | ||||||
| jEdit | ? | |||||||
| JOE | ? | ? | [80] | |||||
| JOVE | memory | ? | ||||||
| Kate | Plug‑in |
[81] |
Maybe [bo] |
Plug‑in | ||||
| KEDIT | 10Kb | |||||||
| Komodo Edit | ? | ? | [83] |
? | ? | |||
| Komodo IDE | ? | ? | [83] |
? | ? | |||
| KWrite | [81] |
[84] |
? | |||||
| LE | [bp] |
memory [bq] |
? | ? | ||||
| Light Table | ? | ? | ||||||
| Metapad | memory [85] |
? | ||||||
| mined | ? | ? | ? | ? | ? | ? | ? | |
| EDIT (MS-DOS) | ||||||||
| EDIT (DR-DOS) | 2 GB, for as long as there is disk swap space for two temporary files | |||||||
| Nano | ? | ? | ? | ? | ||||
| NEdit | ? | |||||||
| Notepad | memory | ? | ||||||
| Notepad++ | [86] |
2GB[87] |
[88] |
|||||
| nvi | ? | ? | ? | ? | ? | |||
| Pico | ? | ? | ? | ? | ? | ? | ? | |
| PolyEdit | ? | ? | ||||||
| PSPad | memory [89] |
? | with plug‑in |
|||||
| RJ TextEd | ? | ? | ||||||
| Sam | ? | ? | external[ah] | |||||
| SciTE | ? | ? | ? | |||||
| SlickEdit | 2 TB |
|||||||
| Smultron | ? | ? | ? | ? | ? | ? | ? | ? |
| SubEthaEdit | ? | ? | ? | |||||
| TED Notepad | ? | ? | ? | |||||
| TextEdit | ? | ? | ? | ? | ||||
| TextMate | ? | ? | ||||||
| TextPad | memory [90] |
? | ||||||
| TextWrangler | memory [91] |
? | ||||||
| The SemWare Editor | 2 GB |
? | ||||||
| UltraEdit | [br] |
|||||||
| VEDIT | ||||||||
| vi | ? | |||||||
| Vim | with plug‑in[92] |
memory [bs] |
||||||
| Visual Studio Code | with plug‑in[93] |
? | ? | |||||
| XEmacs | on 64-bit OS [bt] |
? | ||||||
| XNEdit | ? |
Key bindings
| Custom | IBM CUA | macOS | vi | Emacs | Pico | WordStar | WordPerfect | Brief | |
|---|---|---|---|---|---|---|---|---|---|
| Acme | |||||||||
| Alphatk | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| Atom | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| BBEdit[94][95] | ? | ? | ? | ? | ? | ? | |||
| Bluefish | ? | ? | ? | ? | ? | ? | ? | ||
| Brackets | Partial | Plug‑in |
Plug‑in |
||||||
| Coda | ? | ? | ? | ? | ? | ? | ? | ||
| ConTEXT | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| Crimson Editor | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| ed | |||||||||
| Editra | |||||||||
| EmEditor | ? | ? | ? | ? | ? | ? | ? | ? | |
| epsilon | ? | ? | ? | ? | ? | ? | |||
| Geany | ? | ? | ? | ? | ? | ? | ? | ? | |
| gedit | [bu] |
? | ? | ? | ? | ? | ? | ? | ? |
| GNU Emacs | Partial [96] |
[97] |
[98] |
[98] | |||||
| JED | Partial [bv] |
? | ? | ? | |||||
| jEdit | ? | ? | ? | ? | ? | ? | |||
| JOE[99] | |||||||||
| JOVE | [100] |
||||||||
| LE | ? | ? | ? | ? | ? | ? | ? | ||
| Light Table | Partial | ? | Plug‑in |
Plug‑in |
? | ? | ? | ? | |
| Kate | [101] |
||||||||
| KEDIT | |||||||||
| Komodo Edit | ? | ? | ? | ? | ? | ||||
| Komodo IDE | ? | ? | ? | ? | ? | ||||
| KWrite | ? | ? | ? | ? | ? | ? | ? | ? | |
| Metapad | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| mg | ? | ? | ? | ? | ? | ? | ? | ||
| mined | ? | ? | ? | ? | ? | ? | |||
| MS-DOS Editor | |||||||||
| Nano | Partial [102] |
||||||||
| NEdit | ? | ? | ? | ? | ? | ? | ? | ? | |
| Notepad | |||||||||
| Notepad++ | Partial | ||||||||
| nvi | ? | ? | ? | ? | ? | ? | ? | ? | |
| Pico | Partial [102] |
||||||||
| PolyEdit | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| PSPad | ? | ? | ? | ? | ? | ? | ? | ? | |
| RJ TextEd | ? | ? | ? | ? | ? | ? | ? | ? | |
| Sam | |||||||||
| SciTE | Partial [bw] |
? | ? | ? | ? | ? | |||
| SlickEdit | [bx] |
[by] |
Partial [bz] |
||||||
| Smultron | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| SubEthaEdit | |||||||||
| TED Notepad | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| TextEdit | |||||||||
| TextMate | |||||||||
| TextPad | ? | ? | ? | ? | ? | ? | ? | ? | |
| TextWrangler[94][103] | ? | ? | ? | ? | |||||
| The SemWare Editor | ? | ? | ? | ? | ? | ? | ? | ? | |
| UltraEdit | ? | ? | ? | ? | ? | ? | ? | ||
| VEDIT | [104] |
||||||||
| vi | |||||||||
| Vim | Partial | Plug‑in[105] |
Plug‑in[106] |
[ca] |
Plug‑in[cb] |
? | Plug‑in[108] |
Plug‑in[109] | |
| Visual Studio Code | Plug‑in[110] |
Plug‑in[111] |
Partial Plug‑in[112] | ||||||
| XEmacs | Partial [96] |
[97] |
[98] |
[98] | |||||
| XNEdit | ? | ? | ? | ? | ? | ? | ? | ? |
Notes:
- Vim
- Custom maps of Ctrl-1 .. Ctrl-9, Ctrl-0 cannot be set, nor is Control-Shift-<char> distinguished from Ctrl-<char>.[113][114]
- 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.
Protocol support
| FTP | HTTP | SSH | WebDAV | |
|---|---|---|---|---|
| Acme | ||||
| Alphatk | ||||
| Atom | ? | ? | ? | ? |
| BBEdit | ||||
| Bluefish | ||||
| Brackets | Plug‑in |
|||
| Coda | ||||
| ConTEXT | [115] |
? | [115] |
? |
| Crimson Editor | ||||
| ed | ||||
| Editra | ? | ? | ? | ? |
| EmEditor | ||||
| Geany | ||||
| gedit | ||||
| GNU Emacs | ||||
| JED | ||||
| jEdit | plug‑in[116] |
[117] |
plug‑in[116] |
plug‑in. |
| JOE | ||||
| JOVE | ||||
| LE | ||||
| Kate | ||||
| KEDIT | ||||
| Komodo IDE | FTP, FTPS, SFTP |
|||
| KWrite | ||||
| Metapad | ||||
| mined | ? | ? | ? | ? |
| MS-DOS Editor | ||||
| Nano | ||||
| FTP | HTTP | SSH | WebDAV | |
| NEdit | ||||
| Notepad | ||||
| Notepad++ | Plug‑in for FTP, FTPS, FTPES, SFTP |
Plug‑in |
||
| nvi | ||||
| Pico | ||||
| PolyEdit | ||||
| PSPad | ||||
| RJ TextEd | FTP, SFTP |
|||
| Sam | ||||
| SciTE | ||||
| SlickEdit | ||||
| Smultron | ? | ? | ? | |
| SubEthaEdit | ||||
| TED Notepad | [118] |
? | [118] |
? |
| TextEdit | ||||
| TextMate | ||||
| TextPad | ||||
| TextWrangler | FTP, SFTP[119] |
|||
| The SemWare Editor | ||||
| UltraEdit | ||||
| VEDIT | ||||
| vi | ||||
| Vim | [120] |
[120] |
[120] |
[120] |
| Visual Studio Code | Plug‑in[121] |
Plug‑in (limited?)[121] |
Plug‑in[121] |
Plug‑in[121] |
| XEmacs | ? | |||
| XNEdit |
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 (8-bit) format for editing, some encodings are supported only in some platforms or the editor can only display a character set (such as OEM) by loading corresponding font, but does not support keyboard entry for that character set.
| ASCII | ISO-8859 | DOS (OEM) | EBCDIC | UTF-8 | UTF-16 | |
|---|---|---|---|---|---|---|
| Acme | ? | ? | ? | ? | ||
| Alphatk | ? | ? | ? | |||
| Atom | ? | ? | ? | ? | ? | ? |
| BBEdit | ||||||
| Bluefish | ||||||
| Brackets | ||||||
| Coda | ? | |||||
| ConTEXT | Partial [cc] |
|||||
| Crimson Editor | Partial [cc] |
Partial | ||||
| ed | ? | ? | ? | |||
| Editra | ||||||
| EmEditor | ||||||
| Geany | ? | |||||
| gedit | ? | ? | ||||
| GNU Emacs | [cd] |
[ce] | ||||
| JED | ? | Partial [cf] | ||||
| jEdit | ||||||
| JOE | ? | ? | ? | |||
| JOVE | ||||||
| LE | ? | ? | ? | |||
| Kate | ? | ? | ||||
| KEDIT | Partial [cc] |
|||||
| Komodo Edit | ||||||
| Komodo IDE | ||||||
| KWrite | ? | ? | ? | |||
| Metapad | Partial [cc] |
|||||
| mined | ||||||
| MS-DOS Editor | ? | ? | ? | ? | ||
| Nano | ? | ? | ||||
| NEdit | ? | ? | ? | |||
| Notepad | Partial [cc] |
|||||
| Notepad++ | plug‑in? | |||||
| nvi | ? | ? | ? | [cg] |
||
| Pico | ||||||
| PolyEdit | ? | ? | ? | |||
| PSPad | ? | |||||
| RJ TextEd | ||||||
| Sam | ? | ? | ? | |||
| SciTE[ch] | ||||||
| SlickEdit | ||||||
| Smultron | ? | ? | ? | |||
| SubEthaEdit | ||||||
| TED Notepad | ? | ? | ? | |||
| TextEdit | ? | ? | ||||
| TextMate | ? | ? | ||||
| TextPad | ? | ? | ? | Partial [ci] |
Partial [ci] | |
| TextWrangler | ||||||
| The SemWare Editor | [cj] |
Partial [cc] |
Plug‑in |
|||
| UltraEdit | ||||||
| VEDIT | Partial [ck] |
Partial [ck] | ||||
| vi | ? | ? | ? | |||
| Vim | Partial [cl] |
|||||
| Visual Studio Code | [123] |
|||||
| XEmacs | ? | ? | [cm] |
|||
| XNEdit | ? | ? |
Right-to-left and bidirectional text
Support for right-to-left (RTL) text is necessary for editing some languages like Arabic, Persian, Hebrew, and Yiddish and the mixture of left-to-right (LTR) and RTL known as bidirectional (BiDi). The following table indicates whether an editor supports RTL and BiDi text. Some editors (e.g. Notepad++ 5.1.3) can render bidirectional text but does not support editing it.
| RTL | Bidi | |
|---|---|---|
| Acme | ||
| Alphatk | ? | ? |
| Atom | ||
| BBEdit | ||
| Bluefish | ||
| Brackets | ? | ? |
| Coda | ? | ? |
| ConTEXT | ? | ? |
| Crimson Editor | ? | ? |
| ed | ? | ? |
| Editra | ? | ? |
| EmEditor | ||
| Geany | ? | ? |
| gedit | ||
| GNU Emacs | [cn] | |
| JED | ? | ? |
| jEdit | ||
| JOE | ? | ? |
| JOVE | ||
| LE | ? | ? |
| Kate | ||
| KEDIT | ||
| Komodo Edit | ||
| Komodo IDE | ||
| KWrite | ? | ? |
| Metapad | ? | ? |
| MS-DOS Editor | ? | ? |
| mined | [co] |
[co] |
| Nano | ? | ? |
| NEdit | ||
| Notepad | ||
| Notepad++ | Partial [cp] | |
| 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 (including macOS).[124]
- CR
- Generally, used on Classic Mac OS.
See also
- Editor war
- Comparison of word processors
- Comparison of integrated development environments
- Comparison of HTML editors
- Comparison of TeX editors
- Comparison of hex editors
- Comparison of notetaking software
- Comparison of wiki software
- List of text editors
- List of wiki software
- List of personal information managers
- Outliner
Notes
- Requires Cygwin or the Windows Subsystem for Linux to run on Windows.
- GEdit, when installed from MacPorts, runs in X11 and, therefore, does not have a native look and feel. However, precompiled native macOS binaries for GEdit may be downloaded from the GEdit project page, or from the GEdit FTP download server.
- gedit supports single document window splitting via plug‑ins. Archived 2011-12-14 at the Wayback Machine.
- gedit supports multiple document window splitting via plug‑ins. Archived 2011-12-14 at the Wayback Machine.
- GNU Emacs can support a tabbed document interface modelled after GNU Screen using the elscreen Archived 2008-01-17 at the Wayback Machine package.
- JOE supports editing multiple files but only seeing one of them, and switching to others via Ctrl+K+N, which is functionally equivalent to having tabs but no visible tab bar.
- mined supports Copy/Paste between multiple documents in separate windows, when these documents are in separate terminal windows
- SciTE_max_buffers
- Vim Provided GVim is used.
- Acme can invoke external commands and display their return values in order to integrate additional functionality.
- ConTEXT does not support regular expression backreferences in its search and replace function. Deprecated link archived 2007-12-18 at archive.today
- Geany supports spell checking via a plug‑in
- gedit supports spell checking via a plug‑in, which is distributed with gedit.
- gedit supports Regex-based find & replace via plug‑ins ( Archived 2011-12-14 at the Wayback Machine).
- jEdit supports spell checking via an external plug‑in.
- JOE uses a non-standard regular expression syntax.
- JOE can easily pipe text through the GNU recode(1) utility; it detects locale settings and allows editing in any encoding set up by the environment.
- LE can pipe text through the GNU recode(1) utility
- Metapad spell checking by calling external program Aspell.
- mined supports multiple lines in search and replacement expressions.
- mined can convert the encoding format when using the Copy & Paste feature between multiple documents (that have different encodings).
- mined supports new-line conversion via a command-line option or from the menu. Files with mixed newline types can be edited transparently; different kinds of new-line have different visual indications.
- It is possible to start external applications from inside Sam and display their return values.
- Scintilla-based editors such as SciTE, Notepad2 and Notepad++ do not support alternation (
- UltraEdit uses the Boost C++ regex library. While Boost supports backreferences past \9 with \g{10}, UltraEdit has not yet implemented this feature.
- Visual Studio Code does not support virtual space, and rectangular selection beyond line endings is not possible.
- Acme's auto-completion only works on file names.
- bluefish: Configurable via the outputbox feature.
- ed can invoke external commands, like a compiler.
- gedit-folding: Folding plug‑in for Gedit
- gedit: Compiler integration: Functionality in plug‑ins installed with gedit.
- make can be launched from the LE text editor, but the output is not captured
- Evaluates expressions in some dynamic languages such as Clojure, Python and Javascript in realtime
- mined: Syntax highlighting: HTML/XML, Javascript, JSP.
- Notepad++ comes with Function List support, and it can be enhanced via plugins.
- Notepad++ installs with auto complete list for multiple programming languages. Has user option to add additional personalized auto complete list(s).
- Function list (and stuff) available in Ru-Board build, ver 1.79.66Ru and later
- TextMate: Auto complete: Supported language bundles
- TextWrangler can integrate with a compiler if you write a shell script that takes flag input of the code and compiles it. You place this in ~/Library/Application Support/TextWrangler/Unix Support/Unix Filters/. It should show in the #! menu.
- The Semware Editor: Auto complete: Supported via supplied/user-created lists.
- The Semware Editor: Text folding: Compressed view possible.
- Not in the Linux version.
- Vedit: Auto complete: Template editing, plus 3rd party macro for expanding symbols from tags database.
- Alpha Macro support via AppleScript, Tcl or text factories.
- Coda offers macros via AppleScript, text "clips,"or plug‑ins (Cocoa apps or any installed scripting language).
- name
- LE text editor locks the file and warns if someone else has changed the file
- 2GB with 32 Bits, on a 64 Bit system it depends on the available virtual memory.
- The JED base release comes with a basic CUA emulation, but it doesn't bother to bind lots of useful editor features. Also, like some other editors, 1 side of a region must be at the cursor. The main extension collections jedmodes/jed-extra and the "Red Project" have improved versions, tackling the former problem in particular.
- In SciTE, custom keystrokes may be assigned to Lua scripts, external programs or lexers (highlighters).
- SlickEdit provides emulation of Visual Studio, Visual C++ 6, CodeWright, Epsilon and ISPF key bindings in addition to those given in the table.
- SlickEdit supports CodeWarrior, Xcode and BBEdit key binding emulation.
- SlickEdit includes support of vi key bindings, the ex command line and some, but not all Vim extensions.
- Vim emulates vi keys fully when in 'compatible' mode
- when choosing e.g. Terminal font
- GNU Emacs: While GNU Emacs supports the UTF-8 encoding, it doesn't fully support the Unicode standard, since it doesn't fully support the Unicode Bidirectional Algorithm (see comment in the 'Right-to-left and bidirectional text' section below).
- GNU Emacs: While GNU Emacs supports the UTF-16 encoding, it doesn't fully support the Unicode standard, since it doesn't fully support the Unicode Bidirectional Algorithm (see comment in the 'Right-to-left and bidirectional text' section below).
- JEDs Windows version comes with a pair of scripts that can convert UTF-16 text files (actually anything iconv can convert) to and from JED's internal UTF-8. The Red Project releases include an enhanced version of these scripts.
- nvi Gentoo
- SciTE can open files in UTF or one single-byte encoding specified in a configuration file.
- when choosing e.g. New Courier font
- Vedit can convert UTF-8 and UTF-16 files to Windows character set and back. Characters not included in Windows charset can be preserved.
- Vim supports EBCDIC when compiled on a system that uses the EBCDIC character set.
- from version 21.5.29
- GNU Emacs
(1) According to a comment in the source file where the bidi support is implemented (http://git.savannah.gnu.org/cgit/emacs.git/tree/src/bidi.c accessed August 15, 2017), GNU Emacs doesn't fully conform to the Unicode Bidirectional Algorithm (Unicode Annex #9, a.k.a. UAX #9) in the way it wraps the lines of a bidi paragraph: "we are violating paragraph 3.4 of UAX#9. which mandates that line breaking shall be done before reordering each screen line separately."
(2) According to the online GNU Emacs manual (section 22.19 Bidirectional Editing, accessed August 15, 2017), for the purpose of changing paragraph direction, "Paragraph boundaries are empty lines, i.e., lines consisting entirely of whitespace character". This contrasts with the otherwise ubiquitous convention of regarding the newline marker (LF on Unix derivatives, including macOS, and CR+LF on Windows) as the paragraph separator in plain text documents. However starting with version 26.0.50, the bidi paragraph separator can be customized. - mined: supports bidi in cooperation with bidi terminal (mlterm, mintty); also supports "poor man's bidi mode"(automatic visual text order right-to-left input) in normal terminal
- Notepadpp: Scintilla (Notepad++'s Engine) does not really support bidirectional editing ... Some bidirectional text support added in 4.1.0. https://sourceforge.net/p/scintilla/bugs/757/#01c9
- GNU Emacs: GNU Emacs doesn't regard the newline marker as a paragraph separator in bidi texts. See comment in the 'Right-to-left and bidirectional text' section.