Comparison_of_text_editors

Comparison of text editors

Comparison of text editors

Add article 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

More information Name, Developer ...

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

Natural language (localization)

More information Languages supported, Acme ...

Document interface

More information Multiple instances, Single document window splitting ...

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

More information Spell checking, Regex-based find & replace ...

Programming features

More information Syntax highlighting, Function list ...

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

More information Text shell integration, Graphical shell integration ...

Large file support:

Yes = Larger than 4 GiB (LFS) Yes2 GB = Larger than 1 GB, not limited by memory
memory = Limited by available memory    No (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.[97]

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.

More information Dynamically customizable, IBM CUA ...

Notes, bugs

  • Vim: custom maps of Ctrl-1 .. Ctrl-9, Ctrl-0 cannot be set, nor is Control-Shift-<char> distinguished from Ctrl-<char>.[118][119]
  • 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.

More information FTP, HTTP ...

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.

More information ASCII, ISO-8859 ...

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.)

More information Right-to-left (RTL), Bi-directional (Bidi) ...

Newline support

More information Windows (CR/LF), Classic Mac OS (CR) ...

See also

Notes

  1. alexey_t, kvichans, matthias030.
  2. last update in OpenBSD repo[25]
  3. No native support, available as a part of the Inferno port for Windows or by using `plan9port` over the WSL.
  4. Requires Cygwin or the Windows Subsystem for Linux to run on Windows.
  5. 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.
  6. gedit, NEdit, and SciTE run in the X11 window environment, and therefore do not use the native Aqua look-and-feel when running on macOS.
  7. Stand alone NSIS installable package is available
  8. gedit supports single document window splitting via plugins. Archived 2011-12-14 at the Wayback Machine.
  9. gedit supports multiple document window splitting via plugins. Archived 2011-12-14 at the Wayback Machine.
  10. GNU Emacs 27.1 includes built-in support for tab bar (per-frame) and tab-line (per-window). Earlier versions of GNU Emacs can use a tabbed document interface in a non OS-native way using the Tabbar plugin.
  11. GNU Emacs can support a tabbed document interface modelled after GNU Screen using the elscreen Archived 2008-01-17 at the Wayback Machine package.
  12. 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.
  13. mined supports Copy/Paste between multiple documents in separate windows, when these documents are in separate terminal windows
  14. SciTE_max_buffers
  15. Vim Provided GVim is used.
  16. Vim version 7 supports a tabbed document interface. Earlier versions can emulate tabs through scripts, for example.[53]
  17. Acme can invoke external commands and display their return values in order to integrate additional functionality.
  18. ConTEXT does not support regular expression backreferences in its search and replace function. Archived 2007-12-18 at archive.today
  19. ConTEXT only supports converting text to UTF-16. Also, it can only use one type of new-line format if converting to UTF-16.
  20. Geany supports spell checking via a plugin
  21. gedit supports spell checking via a plugin, which is distributed with gedit.
  22. gedit supports Regex-based find & replace via plugins ( Archived 2011-12-14 at the Wayback Machine).
  23. Emacs supports spell checking via the external programs ispell, aspell, or Hunspell.
  24. jEdit supports spell checking via an external plugin.
  25. JOE supports spell checking via the ispell or aspell external plugins.
  26. JOE uses a non-standard regular expression syntax.
  27. 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.
  28. Komodo Edit is based on Scintilla and may support virtual space similar to Geany and Notepad++ ()
  29. Komodo IDE is based on Scintilla and may support virtual space similar to Geany and Notepad++ ()
  30. LE can pipe text through the GNU recode(1) utility
  31. Metapad spell checking by calling external program Aspell.
  32. mined supports multiple lines in search and replacement expressions.
  33. mined can convert the encoding format when using the Copy & Paste feature between multiple documents (that have different encodings).
  34. 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.
  35. Scintilla-based editors such as SciTE, Notepad2 and Notepad++ do not support alternation (
  36. UltraEdit uses the Boost C++ regex library. While Boost supports backreferences past \9 with \g{10}, UltraEdit has not yet implemented this feature.
  37. VEDIT 6.2 comes with Scribe spelling checker which has been written entirely in Vedit macro language. In addition, macro package for integrating Aspell can be downloaded here.
  38. Vim version 7 supports spell checking natively. Earlier versions require a script.[65]
  39. Visual Studio Code does not support virtual space, and rectangular selection beyond line endings is not possible.
  40. Acme's auto-completion only works on file names.
  41. bluefish: Configurable via the outputbox feature.
  42. With external tool OpenCTags
  43. ed can invoke external commands, like a compiler.
  44. EmEditor Professional supports Auto Complete via plugins (32-bit or 64-bit).
  45. Geany uses its own tags file format, not compatible with ctags, see the manual.
  46. gedit-folding: Folding plugin for Gedit
  47. gedit: Compiler integration: Functionality in plugins installed with gedit.
  48. make can be launched from the LE text editor, but the output is not captured
  49. Evaluates expressions in some dynamic languages such as Clojure, Python and Javascript in realtime
  50. mined: Syntax highlighting: HTML/XML, Javascript, JSP.
  51. Notepad++ comes with Function List support, and it can be enhanced via plugins.
  52. Notepad++ installs with auto complete list for multiple programming languages. Has user option to add additional personalized auto complete list(s).
  53. It is possible to start external applications from inside Sam and display their return values.
  54. Function list (and stuff) available in Ru-Board build, ver 1.79.66Ru and later
  55. TextMate: Auto complete: Supported language bundles
  56. Textpad uses an add-on ()
  57. 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.
  58. The Semware Editor: Auto complete: Supported via supplied/user-created lists.
  59. The Semware Editor: Text folding: Compressed view possible.
  60. Not in the Linux version.
  61. Vedit: Auto complete: Template editing, plus 3rd party macro for expanding symbols from tags database.
  62. Multi-line regex support Support for expressions spanning several lines (e.g. "\n\n(.+)\n\n")
  63. Alpha Macro support via AppleScript, Tcl or text factories.
  64. BBEdit Macro support via AppleScript, Perl, Python, Lasso, shell scripts or text factories.
  65. Coda offers macros via AppleScript, text "clips,"or plugins (Cocoa apps or any installed scripting language).
  66. name
  67. Cssed Macro support via Python.
  68. jEdit: Limited by Java heap size.[82]
  69. Kate: Line length is limited by default. The limit can be removed, but long lines may cause poor performance.[85]
  70. LE text editor locks the file and warns if someone else has changed the file
  71. LE text editor can view and edit large files or their parts in mmap-shared mode
  72. UltraEdit has no real limit on file size - and can easily open, edit, and save large text files in excess of 4 GB! .
  73. 2GB with 32 Bits, on a 64 Bit system it depends on the available virtual memory.
  74. Emacs: 64-bit compilation on 64-bit OS can handle 2 GB files, otherwise the limit is 512 MiB.
  75. It is possible to customize all Gedit shortcuts because it is Gtk based.
  76. 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.
  77. In SciTE, custom keystrokes may be assigned to Lua scripts, external programs or lexers (highlighters).
  78. SlickEdit provides emulation of Visual Studio, Visual C++ 6, CodeWright, Epsilon and ISPF key bindings in addition to those given in the table.
  79. SlickEdit supports CodeWarrior, Xcode and BBEdit key binding emulation.
  80. SlickEdit includes support of vi key bindings, the ex command line and some, but not all Vim extensions.
  81. Vim emulates vi keys fully when in 'compatible' mode
  82. Vim With a script[111]
  83. when choosing e.g. Terminal font
  84. 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).
  85. 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).
  86. 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.
  87. nvi Gentoo
  88. SciTE can open files in UTF or one single-byte encoding specified in a configuration file.
  89. TextPad can load and save UTF-8 and UTF-16 text files, but cannot use or even preserve characters outside of the system encoding.[127]
  90. when choosing e.g. New Courier font
  91. Vedit can convert UTF-8 and UTF-16 files to Windows character set and back. Characters not included in Windows charset can be preserved.
  92. Vim supports EBCDIC when compiled on a system that uses the EBCDIC character set.
  93. from version 21.5.29
  94. 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.
  95. 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
  96. 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
  97. 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.

References

  1. "Alphatk news". Archived from the original on 5 February 2009.
  2. "Release 1.60.0". 8 March 2022.
  3. Error: Unable to display the reference properly. See the documentation for details.
  4. Error: Unable to display the reference properly. See the documentation for details.
  5. "Release 2.1.3". 31 October 2022. Retrieved 6 November 2022.
  6. Error: Unable to display the reference properly. See the documentation for details.
  7. "Epsilon 14 Update Information". Lugaru Software, Ltd. Retrieved 2020-10-22.
  8. "Release Geany 2.0 · geany/geany". GitHub. 19 October 2023. Retrieved 23 October 2023.
  9. Eli Zaretskii (24 March 2024). "Emacs 29.3 released". Retrieved 28 March 2024.
  10. Benno Schulenberg (1 May 2024). "nano-8.0 is released". Retrieved 1 May 2024.
  11. "TDE base libraries and programs". Retrieved 3 January 2024.
  12. "Releases: 24.02". Retrieved 12 March 2024.
  13. Error: Unable to display the reference properly. See the documentation for details.
  14. "Release 6.7.6". 19 December 2023. Retrieved 19 December 2023.
  15. "Release 0.8.1". 22 January 2016. Retrieved 14 March 2018.
  16. Yury V. Zaytsev (27 January 2024). "[mc] Midnight Commander 4.8.31 released". Retrieved 27 January 2024.
  17. "Announcing Metapad 3.6". Archived from the original on 12 June 2011.
  18. "src/usr.bin/mg at master · openbsd/src". GitHub. Retrieved 2020-10-21.
  19. "Release 3.3.3". 19 October 2023. Retrieved 20 October 2023.
  20. "Notepad++ v8.6.7 release". 13 May 2024. Retrieved 13 May 2024.
  21. "nvi 1.81.6". 18 November 2007.
  22. Pimtel. Pimnote.
  23. "Full version: 5.0.7 (770) - 10 March 2023". 10 March 2023. Retrieved 14 March 2023.
  24. Error: Unable to display the reference properly. See the documentation for details.
  25. Error: Unable to display the reference properly. See the documentation for details.
  26. Error: Unable to display the reference properly. See the documentation for details.
  27. Error: Unable to display the reference properly. See the documentation for details.
  28. "Release 12.3". 1 March 2024. Retrieved 25 March 2024.
  29. Error: Unable to display the reference properly. See the documentation for details.
  30. Error: Unable to display the reference properly. See the documentation for details.
  31. "SemWare homepage". Retrieved 24 October 2023.
  32. "Vim 9.1 is available". 2 January 2024. Retrieved 3 January 2024.
  33. "Release v9.1.0". 2 January 2024. Retrieved 3 January 2024.
  34. "April 2024 Recovery 1". Retrieved 13 May 2024.
  35. "LICENSE.txt". github.com/Microsoft/vscode. Microsoft. 17 November 2015.
  36. "Microsoft Software License Terms". code.visualstudio.com. Microsoft. Retrieved 16 August 2016.
  37. "XEmacs: XEmacs 21.4.22 "Instant Classic" is released". 30 January 2009. Retrieved 19 July 2023.
  38. "JOE - Joe's own editor". JOE - Joe's own editor / Mercurial / [2e4f45] /po. Retrieved 23 October 2015.
  39. "Localised SciTE". scintilla.org.
  40. NEdit supports spell checking via a plugin
  41. Notepad++ 6.3.3 Archived 2013-11-26 at the Wayback Machine and above support spell checking via the DSpellCheck plugin, which is included with the default package.
  42. SubEthaEdit supports advanced block editing, including multi-line typing and non-contiguous block selections.
  43. "Virtual space". 28 March 2012.
  44. "Indent with virtual spaces in Vim?". reddit.com. 28 January 2021.
  45. "TSE-Pro Files". www.semware.com.
  46. Vim has a popular TagList plugin that provides a function list.
  47. "atom-macros". Atom. 8 June 2022.
  48. "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 Archived 2019-07-29 at the Wayback Machine.
  49. "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^{61} - 2 bytes, or about 2 EiB. For typical 32-bit machines, the maximum is usually 2^{29} - 2 bytes, or about 512 MiB. Buffer sizes are also limited by the amount of memory in the system.
  50. "The JED Editor" (PDF). Archived from the original (PDF) on 2012-01-05. Retrieved 2009-12-08.
  51. "JOE - Joe's Own Editor". JOE - Joe's own editor / Mercurial / [2e4f45] /docs/man.md. Retrieved 23 October 2015. The search covers all loaded buffers.
  52. "Macros". docs.activestate.com.
  53. Lines longer than ~700 characters frequently cause crashes. KatePart documentation Archived 2018-01-07 at the Wayback Machine (which is also the KWrite documentation, see here Archived 2018-01-07 at the Wayback Machine)
  54. "Notepad++ - How to Remotely work on the Same File in Real Time". Archived from the original on 2021-12-12 via www.youtube.com.
  55. "Text limit". Community. January 16, 2019.
  56. "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 Archived 2019-10-10 at the Wayback Machine.
  57. "Live Share - Visual Studio Marketplace". marketplace.visualstudio.com.
  58. Comparison of Windows Text Editors for Large Files: Text editors for large files
  59. pico uses most of Emacs's motion and deletion commands: ^F ^B ^P ^N ^D etc. See Pico: A Unix text editor Archived 2012-09-05 at the Wayback Machine retrieved 20120109.
  60. 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.
  61. "AC.27 Emulation". GNU Emacs manual. Retrieved 2021-12-06.
  62. "JOE - Joe's Own Editor". JOE - Joe's own editor / Mercurial / [2e4f45] /docs/man.md. Retrieved 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 [...].
  63. "Usenet". www.megalextoria.com.
  64. Kate supports an optional VI Input Mode Archived 2009-02-28 at the Wayback Machine.
  65. pico (and nano) uses most of Emacs's motion and deletion commands: ^F ^B ^P ^N ^D etc. See Pico: A Unix text editor Archived 2012-09-05 at the Wayback Machine retrieved 20120109.
  66. "Bare Bones Software | TextWrangler Features". www.barebones.com. Archived from the original on 2017-08-11. Retrieved 2009-06-05.
  67. Vedit: Old Unix and QNX versions could emulate Vi 100%. Windows version doesn't come with vi emulation.
  68. "Vim distribution optimized for writing". Sep 16, 2021 via GitHub.
  69. "Vim - Visual Studio Marketplace". marketplace.visualstudio.com.
  70. "Emacs - Visual Studio Marketplace". marketplace.visualstudio.com.
  71. "Vim - General - unable to map ctrl-1". vim.1045645.n5.nabble.com. Archived from the original on 2017-12-01. Retrieved 2017-11-30.
  72. "Vim - General - How to map (say) Ctrl-Shift-B". vim.1045645.n5.nabble.com. Archived from the original on 2017-12-01. Retrieved 2017-11-30.
  73. jEdit FTP and SFTP are supported via the FTP plugin.
  74. "TED Notepad". jsimlo.sk.
  75. "Bare Bones Software | TextWrangler Tour". www.barebones.com. Archived from the original on 2019-11-29. Retrieved 2019-11-16.
  76. Vim Supported via netrw plugin distributed in the standard Vim installation.
  77. "Remote Workspace - Visual Studio Marketplace". marketplace.visualstudio.com. Archived from the original on 2019-05-10. Retrieved 2019-05-09.
  78. "JOE - Joe's Own Editor". JOE - Joe's own editor / Mercurial / [2e4f45] /docs/man.md. Retrieved 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.

Share this article:

This article uses material from the Wikipedia article Comparison_of_text_editors, and is written by contributors. Text is available under a CC BY-SA 4.0 International License; additional terms may apply. Images, videos and audio are available under their respective licenses.