Comparison of text editors explained

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

NameDeveloperInitial releaseLatest releaseProgramming languageCost (US$)LicenseGUITUI or CLI
class=sticky-table-none data-sort-type="number"VersionDate
AcmeRob Pike1993Plan 9 and InfernoC
AlphatkVince Darley1999
AtomGitHub2014HTML, CSS, JavaScript, C++
BBEditRich Siegel1992Objective-C, Objective-C++
BluefishBluefish Development Team1999C
BracketsAdobe Systems2012HTML, CSS, JavaScript, C++
CodaPanic2007Objective-C
ConTEXTConTEXT Project Ltd1999Object Pascal (Delphi)
Crimson EditorIngyu Kang1999C++
edKen Thompson1970unchanged from originalC
EditraCody Precord20070.7.202013-01-05Python
EmEditorEmurasoft, Inc.199721.3.02021-11-24C++
epsilonLugaru Software198414.00[1] 2020-10-20C
FeatherPadPedram Pourang2016C++, Qt
FocusWriterGraeme Gott2008C++, Qt
geditGNU Project2000C
GeanyEnrico Tröger2005C, GTK+
GNU EmacsRichard Stallman1984C, Emacs Lisp
GNU nanoChris Allegretta1999C
IA WriterInformation Architects2010.09.227.22025-08-25Objective-C (iOS), Objective-C (macOS), C# (Windows), Java (Android)
JEDJohn E. Davis1992C, S-Lang
jEditSlava Pestov1998Java
JOEJoseph Allen1988C
JOVEJohnathon Payne1983C
KateKDE Project2000-12C++
KEDITMansfield Software Group, Inc.19831.6.12016-12-05C
Komodo EditActivestate2007Python, JavaScript, Perl, Tcl, PHP, Ruby
Komodo IDEActivestate2001Python, JavaScript, Perl, Tcl, PHP, Ruby
KWriteKDE Project2000C++
LEAlexander V. Lukyanov1997C++
LeoEdward K. Ream1996Python
Light TableChris Granger2012ClojureScript
mceditMiguel de Icaza1994C, Python, PHP, Javascript, Perl, Tcl, Ruby
MetapadAlexander Davidson1999C
mgDave Conroy1986current2020-07-22C
MinEdThomas Wolff19922022.272022-12-23C
MS-DOS EditorMicrosoft19912.0.026
neSebastiano Vigna
Todd Lewis
Daniele Filaretti
1993C
NEditMark Edel1991C
NotepadMicrosoft198511.2302.16.0MASM (originally)
Notepad++Don Ho2003-11-25C++
nviKeith Bostic1994C
PicoUniversity of Washington19924.64C
PolyEditPolySoft Solutions19985.420100407
PSPadJan Fiala2002Object Pascal (Delphi)
RJ TextEdRickard Johansson2004Object Pascal (Delphi)
SamRob Pike1980s (early)stableC
SciTENeil Hodgson1999C++
SlickEditSlickEdit, Inc.198828.0.12024-01-21C, Slick-C
SmultronPeter Borg2004Objective-C
SubEthaEditTheCodingMonkeys2003
Sublime Text2008
TED NotepadJuraj Simlovic2001C
TextadeptMitchell2007C, Lua
TextEditApple Inc.2001
TextMateMacroMates2004-10-10Objective-C++
TextPadHelios Software Solutions1992
TextWranglerBare Bones Software20035.5.22016-09-20
The SemWare EditorSammy Mitchell1985-11C, SAL
UltraEditIDM Computer Solutions199425.02018-03-12C++
VEDITTed Green, Greenview Data19806.24.22015-01-12Assembly, C
viBill Joy19763.7C or CDDL
VimBram Moolenaar1991C, Vim script
Visual Studio CodeMicrosoft2015JavaScript, TypeScript
XEmacsLucid Inc.1991C, Emacs Lisp
XNEditOlaf Wintermann20181.5.22023-10-05C

Operating system support

Natural language (localization)

Languages
nowrap AcmeEnglish
nowrap AlphatkEnglish
nowrap English
nowrap BBEditEnglish
nowrap BracketsEnglish, German, French, Polish(Outdated), Korean, Japanese, Italian, Czech, Dutch, Portuguese, Spanish, Swedish(Outdated)
nowrap CodaEnglish, German, French, Spanish
nowrap ConTEXTEnglish, German, French, Polish, Italian, Dutch, Portuguese, Spanish
nowrap Crimson EditorEnglish
nowrap ed
nowrap EditraEnglish, German, French, Polish, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish
nowrap EmEditorEnglish, German, French, Korean, Japanese, Italian, Dutch, Spanish
nowrap epsilonEnglish
nowrap GeanyEnglish, German, French, Polish, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish, Hindi
nowrap geditEnglish, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish, Hindi
nowrap GNU EmacsEnglish
nowrap JEDEnglish
nowrap jEditEnglish
nowrap JOE[3] English, German, French
nowrap JOVEEnglish
nowrap Kate[4] English, German, French, Polish, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish
nowrap KEDITEnglish
nowrap Komodo EditEnglish
nowrap KWriteEnglish, German, Italian, Spanish, Swedish
nowrap Metapad[5] English, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish
nowrap minedEnglish
nowrap MS-DOS EditorEnglish, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish
nowrap NanoEnglish, German, French, Italian, Portuguese
nowrap NEditEnglish
nowrap NotepadEnglish, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish, Hindi
nowrap Notepad++English, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish, Hindi
nowrap nviEnglish
nowrap PicoEnglish, Italian
nowrap PolyEditEnglish
nowrap PSPadEnglish, German, French, Polish, Japanese, Italian, Czech, Dutch, Portuguese, Spanish, Swedish
nowrap RJ TextEdEnglish, German, French, Polish, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish
nowrap SamEnglish
nowrap SciTE[6] English, German, French (Outdated (1.72)), Polish, Japanese (Outdated (1.62)), Italian, Dutch (Outdated (1.67)), Portuguese (Outdated (1.63)), Spanish, Swedish
nowrap SlickEditEnglish
nowrap SmultronEnglish, German, French, Japanese, Italian, Dutch, Spanish, Swedish
nowrap SubEthaEditEnglish
nowrap TED NotepadEnglish
nowrap TextEditEnglish, German, French, Polish, Japanese, Italian, Dutch, Portuguese, Spanish, Swedish
nowrap TextMateEnglish
nowrap TextPadEnglish, 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 TextWranglerEnglish
nowrap The SemWare EditorEnglish
nowrap UltraEditEnglish, German, French, Korean, Italian, Spanish, Portuguese, Japanese, Chinese
nowrap VEDITEnglish
nowrap viEnglish
nowrap VimAfrikaans, 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 Visual Studio CodeEnglish, Bulgarian, Chinese, French, German, Hungarian, Italian, Japanese, Korean, Portuguese, Russian, Spanish, Turkish
nowrap XEmacsEnglish
nowrap XNEditEnglish

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).
  • Basic features

    Programming features

    Additional programming features

    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>.[63] [64]
  • 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

    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.

    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.

    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).[73]
  • CR: Generally, used on Classic Mac OS.
  • See also

    Notes and References

    1. Web site: Epsilon 14 Update Information . 2020-10-22 . Lugaru Software, Ltd..
    2. Web site: New Features in Epsilon 13. www.lugaru.com.
    3. Web site: JOE - Joe's own editor. JOE - Joe's own editor / Mercurial / [2e4f45] /po. 23 October 2015.
    4. Web site: KDE Localization - Apps » stable » kate.po. l10n.kde.org.
    5. Web site: Metapad language plugins. liquidninja.com.
    6. Web site: Localised SciTE. scintilla.org.
    7. Web site: Geany .
    8. Web site: Gedit/Plugins/ColumnMode - GNOME Wiki!. dead. https://web.archive.org/web/20120111004835/http://live.gnome.org/Gedit/Plugins/ColumnMode. 2012-01-11.
    9. Web site: Virtual space for rectangular selections (at least) . . 13 March 2023.
    10. Web site: Selecting Text .
    11. Web site: GitHub - rschroll/lt-spelling: Spell check plugin for Light Table.. April 29, 2015. GitHub.
    12. Web site: Super User's BSD Cross Reference: /OpenBSD/usr.bin/mg/re_search.c. bxr.su.
    13. NEdit supports spell checking via a plugin
    14. http://notepad-plus-plus.org/news/notepad-6.3.3-release.html Notepad++ 6.3.3
    15. SubEthaEdit supports advanced block editing, including multi-line typing and non-contiguous block selections.
    16. Web site: Virtual space . 28 March 2012 .
    17. Web site: Virtual Space is not implemented. · Issue #13960 · microsoft/Vscode . .
    18. Web site: GitHub - ffes/npptags: Universal Ctags plug-in for Notepad++.. March 7, 2019. GitHub.
    19. Web site: NotePad++ Plugin. Allows to connect to SQL Servers, execute SQL commands and views results: vladk1973/npp.connections. June 21, 2019. GitHub.
    20. Web site: TSE-Pro Files. www.semware.com.
    21. Vim has a popular TagList plugin that provides a function list.
    22. Web site: Feature Request: Integrated Shell/Terminal Access · Issue #14490 · atom/atom. GitHub.
    23. Web site: atom-macros. Atom. 8 June 2022 .
    24. Web site: Multi-line find and replace in project · Issue #398 · atom/find-and-replace. GitHub.
    25. "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 .
    26. Web site: Gedit File Search Plugin. oliver.github.io.
    27. Web site: GNU Emacs 23.2 NEWS -- history of user-visible changes. .
    28. Web site: Buffers. A buffer's size cannot be larger than some maximum, which is defined by the largest buffer position representable by Emacs integers. This is because Emacs tracks buffer positions using that data type. For typical 64-bit machines, this maximum buffer size is 2^ - 2 bytes, or about 2 EiB. For typical 32-bit machines, the maximum is usually 2^ - 2 bytes, or about 512 MiB. Buffer sizes are also limited by the amount of memory in the system..
    29. Web site: Does Emacs have problems with large files? .
    30. Web site: GNU emacs manual - Narrowing .
    31. Web site: The JED Editor. 2009-12-08. https://web.archive.org/web/20120105154439/http://www.fi.infn.it/info/jed/jed.pdf. 2012-01-05. dead.
    32. Web site: JOE - Joe's Own Editor. JOE - Joe's own editor / Mercurial / [2e4f45] /docs/man.md. 23 October 2015. The search covers all loaded buffers..
    33. kwrite-devel, Large Files open slowly due to futile Syntax-Highlighting
    34. Web site: Macros. docs.activestate.com.
    35. Lines longer than ~700 characters frequently cause crashes. KatePart documentation (which is also the KWrite documentation, see here)
    36. metapad FAQ, Loading Large Files
    37. Web site: Notepad++ - How to Remotely work on the Same File in Real Time. https://ghostarchive.org/varchive/youtube/20211212/iz-SVru1cKo. 2021-12-12 . live. 11 January 2016 . www.youtube.com.
    38. Web site: Text limit. January 16, 2019. Community.
    39. Web site: Configurable through settings.
    40. Web site: PSPad forum / Bug report / Hlášení chyb / cannot open large file. forum.pspad.com.
    41. Web site: Edit large mbox files - MozillaZine Knowledge Base. kb.mozillazine.org.
    42. "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 .
    43. Web site: GitHub - FredKSchott/CoVim: Collaborative Editing for Vim.. November 13, 2019. GitHub.
    44. Web site: Live Share - Visual Studio Marketplace. marketplace.visualstudio.com.
    45. Web site: Bare Bones Software BBEdit Comparison Chart. www.barebones.com.
    46. Web site: Bare Bones Software Features. www.barebones.com.
    47. pico uses most of Emacs's motion and deletion commands: ^F ^B ^P ^N ^D etc. See Pico: A Unix text editor retrieved 20120109.
    48. GNU Emacs can have Wordstar emulation, with the command M-x wordstar-mode, as found from ws-mode.el retrieved 20170314. See also the "Emulation" section of the previous GNU Emacs manual. The WordStar mode, however, has been obsolete since GNU Emacs 24.5.
    49. Web site: AC.27 Emulation . GNU Emacs manual . 2021-12-06 .
    50. Web site: JOE - Joe's Own Editor. JOE - Joe's own editor / Mercurial / [2e4f45] /docs/man.md. 23 October 2015. JOE also emulates several other editors. JSTAR is a close imitation of WordStar [...]. JPICO is a close imitation of the Pine mailing system's PICO editor [...]. JMACS is a GNU-EMACS imitation. [...] Key binding tables are defined. You can define as many as you like [...]..
    51. Web site: Usenet. www.megalextoria.com.
    52. Kate supports an optional VI Input Mode .
    53. pico (and nano) uses most of Emacs's motion and deletion commands: ^F ^B ^P ^N ^D etc. See Pico: A Unix text editor retrieved 20120109.
    54. Web site: Bare Bones Software TextWrangler Features. www.barebones.com. 2009-06-05. https://web.archive.org/web/20170811014917/http://www.barebones.com/products/textwrangler/features.html. 2017-08-11. dead.
    55. Vedit: Old Unix and QNX versions could emulate Vi 100%. Windows version doesn't come with vi emulation.
    56. Web site: GitHub - fabi1cazenave/cua-mode.vim: Make CTRL-ZXCV behave like in Notepad.. February 26, 2019. GitHub.
    57. Web site: GitHub - likaci/ViFinder: Vim like Keybinding FileManager for OS X.. October 13, 2019. GitHub.
    58. Web site: Vim distribution optimized for writing. Sep 16, 2021. GitHub.
    59. Web site: brief.vim - Brief editor key binding emulation in Vim : vim online. www.vim.org.
    60. Web site: Vim - Visual Studio Marketplace. marketplace.visualstudio.com.
    61. Web site: Emacs - Visual Studio Marketplace. marketplace.visualstudio.com.
    62. Web site: Brief Editor Keymap Emulation - Visual Studio Marketplace. marketplace.visualstudio.com.
    63. Web site: Vim - General - unable to map ctrl-1. vim.1045645.n5.nabble.com. 2017-11-30. 2017-12-01. https://web.archive.org/web/20171201044447/http://vim.1045645.n5.nabble.com/unable-to-map-ctrl-1-td1186261.html. dead.
    64. Web site: Vim - General - How to map (say) Ctrl-Shift-B. vim.1045645.n5.nabble.com. 2017-11-30. 2017-12-01. https://web.archive.org/web/20171201044609/http://vim.1045645.n5.nabble.com/How-to-map-say-Ctrl-Shift-B-td1183582.html. dead.
    65. http://www.context.cx Text Editor Features
    66. jEdit FTP and SFTP are supported via the FTP plugin.
    67. jEdit: "HTTP is supported natively"
    68. Web site: TED Notepad. jsimlo.sk.
    69. Web site: Bare Bones Software TextWrangler Tour. www.barebones.com. 2019-11-16. 2019-11-29. https://web.archive.org/web/20191129002115/http://www.barebones.com/products/textwrangler/featuresutility.html. dead.
    70. Vim Supported via netrw plugin distributed in the standard Vim installation.
    71. Web site: Remote Workspace - Visual Studio Marketplace. marketplace.visualstudio.com. 2019-05-09. 2019-05-10. https://web.archive.org/web/20190510121323/https://marketplace.visualstudio.com/items?itemName=mkloubert.vscode-remote-workspace. dead.
    72. Web site: Support EBCDIC encodings · Issue #49891 · microsoft/vscode. GitHub.
    73. Web site: Did Mac OS Lion switch to using line feeds (LF '\n') for line breaks instead of carriage returns (CR '\r')?. Super User.
    74. Web site: JOE - Joe's Own Editor. JOE - Joe's own editor / Mercurial / [2e4f45] /docs/man.md. 23 October 2015. character sets must use LF (0x0A) or CR-LF (0x0D - 0x0A) as line terminators [...]. [...] character sets which use CR terminated lines (MACs) will not yet work..