Comparison of text editors: Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
imported>GoingBatty
fixed link
imported>Curlyquote
m Punctuation
 
Line 1: Line 1:
{{Short description|none}}
{{Short description|none}}
This article provides basic comparisons for notable [[text editor]]s. More feature details for text editors are available from the ''[[:Category:Text editor features|Category of text editor features]]'' and from the individual products' articles. This article may not be up-to-date or necessarily all-inclusive.
This article compares notable [[text editor]]s. 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.


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).
Other features can be listed via the [[:Category:Text editor features |Category of text editor features]].  


==Overview==
==General attributes==
<!-- In each table, link one (usually 1st) instance of terms, remove other WP:OVERLINK(s). -->
{{mw-datatable}}{{sticky header}}{{sort under}}{{sticky table start}}
{{mw-datatable}}{{sticky header}}{{sort under}}{{sticky table start}}
{| class="wikitable sortable mw-datatable sort-under sticky-table-head sticky-table-col1"
{| class="wikitable sortable mw-datatable sort-under sticky-table-head sticky-table-col1"
|+ List of text editors
! rowspan="2" | Name
! rowspan="2" | Name
! rowspan="2" | Developer
! rowspan="2" | Developer
! rowspan="2" | Initial release
! rowspan="2" | Initial release
! colspan="2" | Latest release
! colspan="2" | Latest release
! rowspan="2" | [[Programming language|Program{{shy}}ming language]]
! rowspan="2" | Program{{shy}}ming language
! rowspan="2" data-sort-type="currency" | Cost ([[United States dollar|US$]])
! rowspan="2" data-sort-type="currency" | Cost ([[United States dollar|US$]])
! rowspan="2" | [[Software license|License]]
! rowspan="2" | License
! rowspan="2" | [[Graphical user interface|GUI]]
! rowspan="2" | GUI
! rowspan="2" | [[Text-based user interface|TUI]] or [[Command-line interface|CLI]]
! rowspan="2" | TUI or CLI
|-
|-
! class=sticky-table-none data-sort-type="number"| Version
! class=sticky-table-none data-sort-type="number"| Version
! Date
! Date
|-
|-
! nowrap {{rh}} | [[Acme (text editor)|Acme]]
! {{rh}} | [[Acme (text editor)|Acme]]
| [[Rob Pike]]
| [[Rob Pike]]
| 1993
| 1993
Line 33: Line 31:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | AkelPad
! {{rh}} | [[Alphatk]]
| Alexey Kuznetsov<br />Alexander Shengalts
| 2003
| {{wikidata|property|preferred|references|edit|Q1084900|P348|P548=Q2804309}}
| {{wikidata|qualifier|raw|preferred|single|Q1084900|P348|P548=Q2804309|P577}}
| C
| {{free|[[Gratis versus libre|No cost]]}}
| {{open source|[[BSD licenses|BSD-2-Clause]]}}
| {{ya}}
| {{na}}
|-
! nowrap {{rh}} | [[Alphatk]]
| Vince Darley
| Vince Darley
| 1999
| 1999
Line 55: Line 42:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Atom (text editor)|Atom]]
! {{rh}} | [[Atom (text editor)|Atom]]
| [[GitHub]]
| [[GitHub]]
| 2014
| 2014
Line 66: Line 53:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[BBEdit]]
! {{rh}} | [[BBEdit]]
| Rich Siegel
| Rich Siegel
| 1992
| 1992
Line 77: Line 64:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Bluefish (software)|Bluefish]]
! {{rh}} | [[Bluefish (software)|Bluefish]]
| Bluefish Development Team
| Bluefish Development Team
| 1999
| 1999
Line 88: Line 75:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Brackets (text editor)|Brackets]]
! {{rh}} | [[Brackets (text editor)|Brackets]]
| [[Adobe Systems]]
| [[Adobe Systems]]
| 2012
| 2012
Line 99: Line 86:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Coda (web development software)|Coda]]
! {{rh}} | [[Coda (web development software)|Coda]]
| Panic
| Panic
| 2007
| 2007
Line 110: Line 97:
|
|
|-
|-
! nowrap {{rh}} | [[ConTEXT]]
! {{rh}} | [[ConTEXT]]
| ConTEXT Project Ltd
| ConTEXT Project Ltd
| 1999
| 1999
Line 121: Line 108:
|
|
|-
|-
! nowrap {{rh}} | [[Crimson Editor]]
! {{rh}} | [[Crimson Editor]]
| Ingyu Kang
| Ingyu Kang
| 1999
| 1999
Line 132: Line 119:
|
|
|-
|-
! nowrap {{rh}} | CudaText
! {{rh}} | [[ed (text editor)|ed]]
| UVViewSoft{{efn|alexey_t, kvichans, matthias030.}}
| 2015
| {{wikidata|property|preferred|references|edit|Q55430618|P348|P548=Q2804309}}
| {{wikidata|qualifier|raw|preferred|single|Q55430618|P348|P548=Q2804309|P577}}
| [[Object Pascal]] ([[Lazarus (software)|Lazarus]])
| {{free|[[Gratis versus libre|No cost]]}}
| {{open source|[[Mozilla Public License|MPL-2.0]]}}
| {{ya}}
| {{na}}
|-
! nowrap {{rh}} | [[ed (text editor)|ed]]
| [[Ken Thompson (computer programmer)|Ken Thompson]]
| [[Ken Thompson (computer programmer)|Ken Thompson]]
| 1970
| 1970
Line 154: Line 130:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Editra]]
! {{rh}} | [[Editra]]
| Cody Precord
| Cody Precord
| 2007
| 2007
Line 165: Line 141:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[EmEditor]]
! {{rh}} | [[EmEditor]]
| Emurasoft, Inc.
| Emurasoft, Inc.
| 1997
| 1997
Line 176: Line 152:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[epsilon (text editor)|epsilon]]
! {{rh}} | [[epsilon (text editor)|epsilon]]
| Lugaru Software
| Lugaru Software
| 1984
| 1984
Line 187: Line 163:
|
|
|-
|-
! nowrap {{rh}} | [[FeatherPad]]
! {{rh}} | [[FeatherPad]]
| Pedram Pourang
| Pedram Pourang
| 2016
| 2016
Line 198: Line 174:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[FocusWriter]]
! {{rh}} | [[FocusWriter]]
| Graeme Gott
| Graeme Gott
| 2008
| 2008
Line 209: Line 185:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[gedit]]
! {{rh}} | [[gedit]]
| [[GNU]] Project
| [[GNU]] Project
| 2000
| 2000
Line 220: Line 196:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Geany]]
! {{rh}} | [[Geany]]
| Enrico Tröger
| Enrico Tröger
| 2005
| 2005
Line 231: Line 207:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[GNU Emacs]]
! {{rh}} | [[GNU Emacs]]
| [[Richard Stallman]]
| [[Richard Stallman]]
| 1984
| 1984
Line 242: Line 218:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[GNU nano]]
! {{rh}} | [[GNU nano]]
| Chris Allegretta
| Chris Allegretta
| 1999
| 1999
Line 253: Line 229:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[IA Writer]]
! {{rh}} | [[IA Writer]]
| Information Architects
| Information Architects
| 2010.09.22
| 2010.09.22
| 5.6
| 7.2
| 2020-12-07
| 2025-08-25
| [[Objective-C]] (iOS), Objective-C (macOS), [[C Sharp (programming language)|C#]] (Windows), [[Java (programming language)|Java]] (Android)
| [[Objective-C]] (iOS), Objective-C (macOS), [[C Sharp (programming language)|C#]] (Windows), [[Java (programming language)|Java]] (Android)
| {{nonfree|$29.99}}
| {{nonfree|$29.99}}
Line 264: Line 240:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[JED (text editor)|JED]]
! {{rh}} | [[JED (text editor)|JED]]
| John E. Davis
| John E. Davis
| 1992
| 1992
Line 275: Line 251:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[jEdit]]
! {{rh}} | [[jEdit]]
| [[Slava Pestov]]
| [[Slava Pestov]]
| 1998
| 1998
Line 286: Line 262:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Joe's Own Editor|JOE]]
! {{rh}} | [[Joe's Own Editor|JOE]]
| Joseph Allen
| Joseph Allen
| 1988
| 1988
Line 297: Line 273:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[JOVE]]
! {{rh}} | [[JOVE]]
| Johnathon Payne
| Johnathon Payne
| 1983
| 1983
Line 308: Line 284:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Kate (text editor)|Kate]]
! {{rh}} | [[Kate (text editor)|Kate]]
| [[KDE]] Project
| [[KDE]] Project
| 2000-12
| 2000-12
Line 319: Line 295:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[XEDIT|KEDIT]]
! {{rh}} | [[XEDIT|KEDIT]]
| Mansfield Software Group, Inc.
| Mansfield Software Group, Inc.
| 1983
| 1983
Line 330: Line 306:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Komodo Edit]]
! {{rh}} | [[Komodo Edit]]
| [[Activestate]]
| [[Activestate]]
| 2007
| 2007
Line 341: Line 317:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Komodo IDE]]
! {{rh}} | [[Komodo IDE]]
| Activestate
| Activestate
| 2001
| 2001
Line 352: Line 328:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[KWrite]]
! {{rh}} | [[KWrite]]
| [[KDE]] Project
| [[KDE]] Project
| 2000
| 2000
Line 363: Line 339:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[LE (text editor)|LE]]
! {{rh}} | [[LE (text editor)|LE]]
| Alexander V. Lukyanov
| Alexander V. Lukyanov
| 1997
| 1997
Line 374: Line 350:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Leo (text editor)|Leo]]
! {{rh}} | [[Leo (text editor)|Leo]]
| Edward K. Ream
| Edward K. Ream
| 1996
| 1996
Line 385: Line 361:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Light Table (software)|Light Table]]
! {{rh}} | [[Light Table (software)|Light Table]]
| Chris Granger
| Chris Granger
| 2012
| 2012
Line 396: Line 372:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[mcedit]]
! {{rh}} | [[mcedit]]
| [[Miguel de Icaza]]
| [[Miguel de Icaza]]
| 1994
| 1994
Line 407: Line 383:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Metapad]]
! {{rh}} | [[Metapad]]
| Alexander Davidson
| Alexander Davidson
| 1999
| 1999
Line 418: Line 394:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[mg (text editor)|mg]]
! {{rh}} | [[mg (text editor)|mg]]
| Dave Conroy
| Dave Conroy
| 1986
| 1986
Line 429: Line 405:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[mined (text editor)|MinEd]]
! {{rh}} | [[mined (text editor)|MinEd]]
| Thomas Wolff
| Thomas Wolff
| 1992
| 1992
Line 440: Line 416:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[MS-DOS Editor]]
! {{rh}} | [[MS-DOS Editor]]
| [[Microsoft]]
| [[Microsoft]]
| 1991
| 1991
Line 451: Line 427:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[ne (text editor)|ne]]
! {{rh}} | [[ne (text editor)|ne]]
| Sebastiano Vigna<br />Todd Lewis<br />Daniele Filaretti
| Sebastiano Vigna<br />Todd Lewis<br />Daniele Filaretti
| 1993
| 1993
Line 462: Line 438:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[NEdit]]
! {{rh}} | [[NEdit]]
| Mark Edel
| Mark Edel
| 1991
| 1991
Line 473: Line 449:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Microsoft Notepad|Notepad]]
! {{rh}} | [[Microsoft Notepad|Notepad]]
| Microsoft
| Microsoft
| 1985
| 1985
Line 484: Line 460:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Notepad++]]
! {{rh}} | [[Notepad++]]
| Don Ho
| Don Ho
| 2003-11-25
| 2003-11-25
Line 495: Line 471:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[nvi]]
! {{rh}} | [[nvi]]
| [[Keith Bostic (software engineer)|Keith Bostic]]
| [[Keith Bostic (software engineer)|Keith Bostic]]
| 1994
| 1994
Line 506: Line 482:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Pico (text editor)|Pico]]
! {{rh}} | [[Pico (text editor)|Pico]]
| [[University of Washington]]
| [[University of Washington]]
| 1992
| 1992
Line 517: Line 493:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[PolyEdit]]
! {{rh}} | [[PolyEdit]]
| PolySoft Solutions
| PolySoft Solutions
| 1998
| 1998
Line 528: Line 504:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[PSPad]]
! {{rh}} | [[PSPad]]
| Jan Fiala
| Jan Fiala
| 2002
| 2002
Line 539: Line 515:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[RJ TextEd]]
! {{rh}} | [[RJ TextEd]]
| Rickard Johansson
| Rickard Johansson
| 2004
| 2004
Line 550: Line 526:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Sam (text editor)|Sam]]
! {{rh}} | [[Sam (text editor)|Sam]]
| [[Rob Pike]]
| [[Rob Pike]]
| 1980s (early)
| 1980s (early)
Line 561: Line 537:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[SciTE]]
! {{rh}} | [[SciTE]]
| Neil Hodgson
| Neil Hodgson
| 1999
| 1999
Line 572: Line 548:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[SlickEdit]]
! {{rh}} | [[SlickEdit]]
| SlickEdit, Inc.
| SlickEdit, Inc.
| 1988
| 1988
Line 583: Line 559:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Smultron]]
! {{rh}} | [[Smultron]]
| Peter Borg
| Peter Borg
| 2004
| 2004
Line 594: Line 570:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[SubEthaEdit]]
! {{rh}} | [[SubEthaEdit]]
| TheCoding{{shy}}Monkeys
| TheCoding{{shy}}Monkeys
| 2003
| 2003
Line 605: Line 581:
|
|
|-
|-
! nowrap {{rh}} | [[Sublime Text]]
! {{rh}} | [[Sublime Text]]
| {{#statements:developer|from=Q267193}}
| {{#statements:developer|from=Q267193}}
| 2008
| 2008
Line 616: Line 592:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[TED Notepad]]
! {{rh}} | [[TED Notepad]]
| Juraj Simlovic
| Juraj Simlovic
| 2001
| 2001
Line 627: Line 603:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Textadept]]
! {{rh}} | [[Textadept]]
| Mitchell
| Mitchell
| 2007
| 2007
Line 638: Line 614:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[TextEdit]]
! {{rh}} | [[TextEdit]]
| [[Apple Inc.]]
| [[Apple Inc.]]
| 2001
| 2001
Line 649: Line 625:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[TextMate]]
! {{rh}} | [[TextMate]]
| MacroMates
| MacroMates
| 2004-10-10
| 2004-10-10
Line 660: Line 636:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[TextPad]]
! {{rh}} | [[TextPad]]
| Helios Software Solutions
| Helios Software Solutions
| 1992
| 1992
Line 671: Line 647:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[BBEdit|TextWrangler]]
! {{rh}} | [[BBEdit|TextWrangler]]
| [[Bare Bones Software]]
| [[Bare Bones Software]]
| 2003
| 2003
Line 682: Line 658:
|
|
|-
|-
! nowrap {{rh}} | [[The SemWare Editor]]
! {{rh}} | [[The SemWare Editor]]
| Sammy Mitchell
| Sammy Mitchell
| 1985-11
| 1985-11
Line 693: Line 669:
|
|
|-
|-
! nowrap {{rh}} | [[UltraEdit]]
! {{rh}} | [[UltraEdit]]
| [[IDM Computer Solutions]]
| [[IDM Computer Solutions]]
| 1994
| 1994
Line 704: Line 680:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[VEDIT]]
! {{rh}} | [[VEDIT]]
| Ted Green, Greenview Data
| Ted Green, Greenview Data
| 1980
| 1980
Line 715: Line 691:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Vi (text editor)|vi]]
! {{rh}} | [[Vi (text editor)|vi]]
| [[Bill Joy]]
| [[Bill Joy]]
| 1976
| 1976
Line 726: Line 702:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Vim (text editor)|Vim]]
! {{rh}} | [[Vim (text editor)|Vim]]
| [[Bram Moolenaar]]
| [[Bram Moolenaar]]
| 1991
| 1991
Line 737: Line 713:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Visual Studio Code]]
! {{rh}} | [[Visual Studio Code]]
| [[Microsoft]]
| [[Microsoft]]
| 2015
| 2015
Line 748: Line 724:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[XEmacs]]
! {{rh}} | [[XEmacs]]
| [[Lucid Inc.]]
| [[Lucid Inc.]]
| 1991
| 1991
Line 759: Line 735:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Nedit|XNEdit]]
! {{rh}} | [[Nedit|XNEdit]]
| Olaf Wintermann
| Olaf Wintermann
| 2018
| 2018
Line 773: Line 749:


==Operating system support==
==Operating system support==
This section lists the [[operating system]]s that different editors can run on. Some editors run on additional operating systems that are not listed.
===Cross-platform===
{{sticky header}}{{sort under}}  
{{sticky header}}{{sort under}}  
{| class="wikitable sortable sticky-header sort-under" style="max-width: 30em;"
{| class="wikitable sortable sticky-header sort-under" style="max-width: 30em;"
|+ Text editor support for various operating systems
|-valign=bottom
|-valign=bottom
! nowrap {{rh}} |
! nowrap {{rh}} |
! [[Microsoft Windows]]
! [[Windows]]
! [[macOS]]
! [[macOS]]
! [[Linux]]
! [[Linux]]
Line 794: Line 766:
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{na}}
|-
! nowrap {{rh}} | AkelPad
| {{ya}}
| {{na}}
| {{na}}
| {{na}}
| {{na}}
| {{na}}
| {{na}}
|-
|-
Line 874: Line 838:
| {{na}}
| {{na}}
| {{na}}
| {{na}}
| {{na}}
|-
! nowrap {{rh}} | CudaText
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
|-
|-
Line 1,223: Line 1,179:
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
| {{na}}
| {{ya}}
| {{na}}
| {{na}}
| {{na}}
| {{na}}
Line 1,287: Line 1,243:
==Natural language (localization)==
==Natural language (localization)==
{| class="wikitable sortable" style="max-width: 60em; table-layout: fixed"
{| class="wikitable sortable" style="max-width: 60em; table-layout: fixed"
|+ Available languages for the {{abbr|UI|user interface}}
|-valign=bottom
|-valign=bottom
! !! Languages supported
! !! Languages
|-
|-
! nowrap {{rh}} | [[Acme (text editor)|Acme]]
! nowrap {{rh}} | [[Acme (text editor)|Acme]]
| English
| English
|-
! nowrap {{rh}} | AkelPad
| English, German, French, Polish, Korean, Japanese, Italian, Dutch, Portuguese, Spanish
|-
|-
! nowrap {{rh}} | [[Alphatk]]
! nowrap {{rh}} | [[Alphatk]]
Line 1,317: Line 1,269:
! nowrap {{rh}} | [[Crimson Editor]]
! nowrap {{rh}} | [[Crimson Editor]]
| English
| English
|-
! nowrap {{rh}} | CudaText
|Main: English. Addons: Japanese, French, Polish, Korean, Hungarian (2018), Greek, German (2017), and 9 others
|-
|-
! nowrap {{rh}} | [[ed (text editor)|ed]]
! nowrap {{rh}} | [[ed (text editor)|ed]]
Line 1,459: Line 1,408:


==Document interface==
==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 [[Microsoft Word | 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).
{{sticky header}}{{sort under}}  
{{sticky header}}{{sort under}}  
{| class="wikitable sortable sticky-header" style="max-width: 30em; table-layout: fixed; margin-top: 0"
{| class="wikitable sortable sticky-header" style="max-width: 30em; table-layout: fixed; margin-top: 0"
Line 1,466: Line 1,422:
! Multiple instances
! Multiple instances
! Single document window splitting
! Single document window splitting
! [[multiple-document interface|MDI]]: overlappable windows
! MDI overlappable windows
! MDI: [[tabbed document interface]]
! MDI tabbed document interface
! MDI: window splitting
! MDI window splitting
|-
|-
! nowrap {{rh}} | [[Acme (text editor)|Acme]]
! nowrap {{rh}} | [[Acme (text editor)|Acme]]
Line 1,477: Line 1,433:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | AkelPad
! nowrap {{rh}} | [[Alphatk]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 1,484: Line 1,440:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Alphatk]]
| {{rh}} | [[Atom (text editor)|Atom]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 1,491: Line 1,447:
| {{ya}}
| {{ya}}
|-
|-
| {{rh}} | [[Atom (text editor)|Atom]]
! nowrap {{rh}} | [[BBEdit]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
|-
! nowrap {{rh}} | [[BBEdit]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 1,537: Line 1,486:
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
|-
! nowrap {{rh}} | CudaText
| {{ya}}
| {{ya}}
| {{na}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 1,875: Line 1,817:
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
|-valign=top
!
! Multiple instances
! Single document window splitting
! MDI: overlappable windows
! MDI: tabbed document interface
! MDI: 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==
==Basic features==
{{sticky header}}{{sort under}}  
{{sticky header}}{{sort under}}  
{| class="wikitable sticky-header sortable" style="max-width: 30em; table-layout: fixed"
{| class="wikitable sticky-header sortable" style="max-width: 30em; table-layout: fixed"
|+ Text editor support for basic editing features
|-valign=bottom
|-valign=bottom
!
!
Line 1,913: Line 1,839:
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
| {{dunno}}
|-
! nowrap {{rh}} | AkelPad
| {{ya}}<br />Plug{{nbh}}in
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{dunno}}
| {{dunno}}
|-
|-
Line 1,989: Line 1,906:
! nowrap {{rh}} | [[Crimson Editor]]
! nowrap {{rh}} | [[Crimson Editor]]
| {{ya}}<br />Instant/live (like Firefox)
| {{ya}}<br />Instant/live (like Firefox)
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{dunno}}
|-
! nowrap {{rh}} | CudaText
| {{na}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 2,202: Line 2,110:
| {{na}}
| {{na}}
| {{dunno}}
| {{dunno}}
|-
!
! Spell checking
! Regex-based find & replace
! Encoding conversion
! Newline conversion
! Multiple undo/redo
! Rectangular block selection
!Virtual Space Support
|-
|-
! nowrap {{rh}} | [[ne (text editor)|ne]]
! nowrap {{rh}} | [[ne (text editor)|ne]]
Line 2,435: Line 2,334:
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{no}}<ref>{{cite web |title=Indent with virtual spaces in Vim? |url=https://www.reddit.com/r/vim/comments/l6lph3/indent_with_virtual_spaces_in_vim/ |website=reddit.com|date=28 January 2021 }}</ref>
| {{no}}{{cn|date=December 2025}}
|-
|-
| {{rh}} | [[Visual Studio Code]]
| {{rh}} | [[Visual Studio Code]]
Line 2,463: Line 2,362:
| {{ya}}
| {{ya}}
| {{dunno}}
| {{dunno}}
|-valign=top
!
! Spell checking
! Regex-based find & replace
! Encoding conversion
! Newline conversion
! Multiple undo/redo
! Rectangular block selection
!Virtual Space Support
|}
|}


Line 2,477: Line 2,367:
{{sticky header}}{{sort under}}
{{sticky header}}{{sort under}}
{| class="wikitable sticky-header sortable" style="max-width: 30em; table-layout: fixed"
{| class="wikitable sticky-header sortable" style="max-width: 30em; table-layout: fixed"
|+ Text editor support for programming features (see [[source code editor]])
|-valign=bottom
|-valign=bottom
!
!
! [[Syntax highlighting]]
! Syntax highlighting
! Function list
! Function list
! Symbol database <br />([[ctags]] or equiv.)
! Symbol database
! [[Brace matching]]
! Bracket matching
! Auto indentation
! Auto indentation
! [[Autocomplete|Auto completion]]
! Auto completion
! [[Code folding]]
! Code folding
! [[Text folding]]
! Text folding
! [[Compiler]] integration
! Compiler integration
|-
|-
! nowrap {{rh}} | [[Acme (text editor)|Acme]]
! {{rh}} | [[Acme (text editor)|Acme]]
| <!-- syntax -->{{na}}
| <!-- syntax -->{{na}}
| <!-- function list -->{{ya}}<br />external{{efn|name=acmeext}}
| <!-- function list -->{{ya}}<br />external{{efn|name=acmeext}}
Line 2,501: Line 2,390:
| <!-- compiler integration -->{{ya}}<br />external{{efn|name=acmeext}}
| <!-- compiler integration -->{{ya}}<br />external{{efn|name=acmeext}}
|-
|-
! nowrap {{rh}} | AkelPad
! {{rh}} | [[Alphatk]]
| <!-- syntax -->{{ya}}<br />Plug{{nbh}}in
| {{ya}}
| <!-- function list -->{{ya}}<br />Plug{{nbh}}in
| <!-- symbol db -->{{ya}}<br />Plug{{nbh}}in
| <!-- bracket matching -->{{ya}}<br />Plug{{nbh}}in
| <!-- auto indent -->{{ya}}
| <!-- autocomplete -->{{ya}}<br />Plug{{nbh}}in
| <!-- code folding -->{{ya}}<br />Plug{{nbh}}in
| <!-- text folding --> {{na}}
| <!-- compiler integration -->{{ya}}<br />Plug{{nbh}}in
|-
! nowrap {{rh}} | [[Alphatk]]
| {{ya}}
| {{dunno}}
| {{dunno}}
| {{dunno}}
| {{dunno}}
Line 2,523: Line 2,401:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Atom (text editor)|Atom]]
! {{rh}} | [[Atom (text editor)|Atom]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 2,534: Line 2,412:
| {{ya}}<br />Plug{{nbh}}in
| {{ya}}<br />Plug{{nbh}}in
|-
|-
! nowrap {{rh}} | [[BBEdit]]
! {{rh}} | [[BBEdit]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 2,545: Line 2,423:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Bluefish (software)|Bluefish]]
! {{rh}} | [[Bluefish (software)|Bluefish]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 2,556: Line 2,434:
| {{ya}}<br />{{efn|name=bluefish-unstable3|''bluefish'': Configurable via the outputbox feature.}}
| {{ya}}<br />{{efn|name=bluefish-unstable3|''bluefish'': Configurable via the outputbox feature.}}
|-
|-
! nowrap {{rh}} | [[Brackets (text editor)|Brackets]]
! {{rh}} | [[Brackets (text editor)|Brackets]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 2,567: Line 2,445:
| {{ya}}<br />Plug{{nbh}}in
| {{ya}}<br />Plug{{nbh}}in
|-
|-
! nowrap {{rh}} | [[Coda (web development software)|Coda]]
! {{rh}} | [[Coda (web development software)|Coda]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 2,578: Line 2,456:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[ConTEXT]]
! {{rh}} | [[ConTEXT]]
| {{ya}}
| {{ya}}
| {{dunno}}
| {{dunno}}
Line 2,589: Line 2,467:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Crimson Editor]]
! {{rh}} | [[Crimson Editor]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
| {{Partial}}<br />{{efn|name=openctags|With external tool [http://openctags.sourceforge.net/ OpenCTags]}}
| {{Partial}}<br />{{efn|name=openctags|With external tool [https://openctags.sourceforge.net/ OpenCTags]}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 2,600: Line 2,478:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | CudaText
! {{rh}} | [[ed (text editor)|ed]]
| <!-- syntax -->{{ya}}
| <!-- function list -->{{ya}}
| <!-- symbol db -->{{ya}}
| <!-- bracket matching -->{{ya}}<br />Plug{{nbh}}in
| <!-- auto indent -->{{ya}}
| <!-- autocomplete -->{{ya}}<br />Plug{{nbh}}in
| <!-- code folding -->{{ya}}
| <!-- text folding --> {{ya}}
| <!-- compiler integration -->{{ya}}<br />Plug{{nbh}}in
|-
! nowrap {{rh}} | [[ed (text editor)|ed]]
| {{na}}
| {{na}}
| {{na}}
| {{na}}
Line 2,622: Line 2,489:
| {{ya}}<br />external{{efn|name=edext|ed can invoke external commands, like a compiler.}}
| {{ya}}<br />external{{efn|name=edext|ed can invoke external commands, like a compiler.}}
|-
|-
! nowrap {{rh}} | [[Editra]]
! {{rh}} | [[Editra]]
| {{ya}}
| {{ya}}
| {{dunno}}
| {{dunno}}
Line 2,633: Line 2,500:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[EmEditor]]
! {{rh}} | [[EmEditor]]
| {{ya}}
| {{ya}}
| {{ya}}<br />Plug{{nbh}}in
| {{ya}}<br />Plug{{nbh}}in
Line 2,644: Line 2,511:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Geany]]
! {{rh}} | [[Geany]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 2,655: Line 2,522:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[gedit]]
! {{rh}} | [[gedit]]
| {{ya}}
| {{ya}}
| {{ya}}<br />Plug{{nbh}}in
| {{ya}}<br />Plug{{nbh}}in
Line 2,666: Line 2,533:
| {{ya}}<br />{{efn|name=geditPlugin|''gedit'': Compiler integration: Functionality in plug{{nbh}}ins installed with gedit.}}
| {{ya}}<br />{{efn|name=geditPlugin|''gedit'': Compiler integration: Functionality in plug{{nbh}}ins installed with gedit.}}
|-
|-
! nowrap {{rh}} | [[Emacs#GNU Emacs|GNU Emacs]]
! {{rh}} | [[Emacs#GNU Emacs|GNU Emacs]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 2,677: Line 2,544:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[JED (text editor)|JED]]
! {{rh}} | [[JED (text editor)|JED]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 2,688: Line 2,555:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[jEdit]]
! {{rh}} | [[jEdit]]
| {{ya}}
| {{ya}}
| {{ya}}<br />Plug{{nbh}}in
| {{ya}}<br />Plug{{nbh}}in
Line 2,699: Line 2,566:
| {{ya}}<br />Plug{{nbh}}in
| {{ya}}<br />Plug{{nbh}}in
|-
|-
! nowrap {{rh}} | [[Joe's Own Editor|JOE]]
! {{rh}} | [[Joe's Own Editor|JOE]]
| {{ya}}
| {{ya}}
| {{dunno}}
| {{dunno}}
Line 2,710: Line 2,577:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[JOVE]]
! {{rh}} | [[JOVE]]
| {{na}}
| {{na}}
| {{na}}
| {{na}}
Line 2,721: Line 2,588:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Kate (text editor)|Kate]]
! {{rh}} | [[Kate (text editor)|Kate]]
| {{ya}}
| {{ya}}
| {{ya}}<br />Plug{{nbh}}in
| {{ya}}<br />Plug{{nbh}}in
Line 2,732: Line 2,599:
| {{ya}}<br />Plug{{nbh}}in
| {{ya}}<br />Plug{{nbh}}in
|-
|-
! nowrap {{rh}} | [[XEDIT|KEDIT]]
! {{rh}} | [[XEDIT|KEDIT]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 2,743: Line 2,610:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[ActiveState Komodo#Komodo Edit|Komodo Edit]]
! {{rh}} | [[ActiveState Komodo#Komodo Edit|Komodo Edit]]
| <!-- syntax -->{{ya}}
| <!-- syntax -->{{ya}}
| <!-- function list -->{{ya}}
| <!-- function list -->{{ya}}
Line 2,754: Line 2,621:
| <!-- compiler integration -->{{na}}
| <!-- compiler integration -->{{na}}
|-
|-
! nowrap {{rh}} | [[Komodo IDE]]
! {{rh}} | [[Komodo IDE]]
| <!-- syntax -->{{ya}}
| <!-- syntax -->{{ya}}
| <!-- function list -->{{ya}}
| <!-- function list -->{{ya}}
Line 2,765: Line 2,632:
| <!-- compiler integration -->{{ya}}
| <!-- compiler integration -->{{ya}}
|-
|-
! nowrap {{rh}} | [[KWrite]]
! {{rh}} | [[KWrite]]
| {{ya}}
| {{ya}}
| {{dunno}}
| {{dunno}}
Line 2,776: Line 2,643:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[LE (text editor)|LE]]
! {{rh}} | [[LE (text editor)|LE]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 2,787: Line 2,654:
| {{na}}<br />{{efn|''make'' can be launched from the LE text editor, but the output is not captured}}
| {{na}}<br />{{efn|''make'' can be launched from the LE text editor, but the output is not captured}}
|-
|-
! nowrap {{rh}} | [[Light Table (software)|Light Table]]
! {{rh}} | [[Light Table (software)|Light Table]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 2,798: Line 2,665:
| {{Partial}}<br />{{efn|Evaluates expressions in some dynamic languages such as Clojure, Python and Javascript in realtime}}
| {{Partial}}<br />{{efn|Evaluates expressions in some dynamic languages such as Clojure, Python and Javascript in realtime}}
|-
|-
! nowrap {{rh}} | [[Metapad]]
! {{rh}} | [[Metapad]]
| {{na}}
| {{na}}
| {{na}}
| {{na}}
Line 2,809: Line 2,676:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[mined (text editor)|mined]]
! {{rh}} | [[mined (text editor)|mined]]
| {{ya}}<br />{{efn|''mined'': Syntax highlighting: HTML/XML, Javascript, JSP.}}
| {{ya}}<br />{{efn|''mined'': Syntax highlighting: HTML/XML, Javascript, JSP.}}
| {{dunno}}
| {{dunno}}
Line 2,820: Line 2,687:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[MS-DOS Editor]]
! {{rh}} | [[MS-DOS Editor]]
| {{na}}
| {{na}}
| {{na}}
| {{na}}
Line 2,831: Line 2,698:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Nano (text editor)|Nano]]
! {{rh}} | [[Nano (text editor)|Nano]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 2,842: Line 2,709:
| {{na}}
| {{na}}
|-
|-
!
! {{rh}} | [[ne (text editor)|ne]]
! Syntax highlighting
| {{ya}}
! Function list
| {{na}}
! Symbol database <br />(ctags or equiv.)
| {{na}}
! Bracket matching
| {{ya}}
! Auto indentation
| {{ya}}
! Auto completion
! Code folding
! Text folding
! Compiler integration
|-
! nowrap {{rh}} | [[ne (text editor)|ne]]
| {{ya}}
| {{na}}
| {{na}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 2,864: Line 2,720:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[NEdit]]
! {{rh}} | [[NEdit]]
| {{ya}}
| {{ya}}
| {{ya}}<br />Plug{{nbh}}in
| {{ya}}<br />Plug{{nbh}}in
Line 2,875: Line 2,731:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Microsoft Notepad|Notepad]]
! {{rh}} | [[Microsoft Notepad|Notepad]]
| {{na}}
| {{na}}
| {{na}}
| {{na}}
Line 2,886: Line 2,742:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Notepad++]]
! {{rh}} | [[Notepad++]]
| {{ya}}
| {{ya}}
| {{ya}}<br />{{efn|name=notepadPPFunctionList|Notepad++ comes with Function List support, and it can be enhanced via plugins.}}
| {{ya}}<br />{{efn|name=notepadPPFunctionList|Notepad++ comes with Function List support, and it can be enhanced via plugins.}}
Line 2,897: Line 2,753:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[nvi]]
! {{rh}} | [[nvi]]
| {{na}}
| {{na}}
| {{dunno}}
| {{dunno}}
Line 2,908: Line 2,764:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Pico (text editor)|Pico]]
! {{rh}} | [[Pico (text editor)|Pico]]
| {{na}}
| {{na}}
| {{na}}
| {{na}}
Line 2,919: Line 2,775:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[PolyEdit]]
! {{rh}} | [[PolyEdit]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 2,930: Line 2,786:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[PSPad]]
! {{rh}} | [[PSPad]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 2,941: Line 2,797:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[RJ TextEd]]
! {{rh}} | [[RJ TextEd]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 2,952: Line 2,808:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Sam (text editor)|Sam]]
! {{rh}} | [[Sam (text editor)|Sam]]
| <!-- syntax -->{{na}}
| <!-- syntax -->{{na}}
| <!-- function list -->{{na}}
| <!-- function list -->{{na}}
Line 2,963: Line 2,819:
| <!-- compiler integration -->{{ya}}<br />external{{efn|name=samext}}
| <!-- compiler integration -->{{ya}}<br />external{{efn|name=samext}}
|-
|-
! nowrap {{rh}} | [[SciTE]]
! {{rh}} | [[SciTE]]
| {{ya}}
| {{ya}}
| {{na}}<br />{{efn|name=SciTE_function_list|''Function list (and stuff) available in Ru-Board build, ver 1.79.66Ru and later''}}
| {{na}}<br />{{efn|name=SciTE_function_list|''Function list (and stuff) available in Ru-Board build, ver 1.79.66Ru and later''}}
Line 2,974: Line 2,830:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[SlickEdit]]
! {{rh}} | [[SlickEdit]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 2,985: Line 2,841:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Smultron]]
! {{rh}} | [[Smultron]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 2,996: Line 2,852:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[SubEthaEdit]]
! {{rh}} | [[SubEthaEdit]]
| {{ya}}
| {{ya}}
| {{dunno}}
| {{dunno}}
Line 3,007: Line 2,863:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[TED Notepad]]
! {{rh}} | [[TED Notepad]]
| {{na}}
| {{na}}
| {{dunno}}
| {{dunno}}
Line 3,018: Line 2,874:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[TextEdit]]
! {{rh}} | [[TextEdit]]
| {{na}}
| {{na}}
| {{na}}
| {{na}}
Line 3,029: Line 2,885:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[TextMate]]
! {{rh}} | [[TextMate]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,040: Line 2,896:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[TextPad]]
! {{rh}} | [[TextPad]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 3,051: Line 2,907:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[TextWrangler]]
! {{rh}} | [[TextWrangler]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,062: Line 2,918:
| {{ya}}<br />Plug{{nbh}}in{{efn|name=TextWranglerCompilerIntgn|''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.}}
| {{ya}}<br />Plug{{nbh}}in{{efn|name=TextWranglerCompilerIntgn|''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.}}
|-
|-
! nowrap {{rh}} | [[The SemWare Editor]]
! {{rh}} | [[The SemWare Editor]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,073: Line 2,929:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[UltraEdit]]
! {{rh}} | [[UltraEdit]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,084: Line 2,940:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[VEDIT]]
! {{rh}} | [[VEDIT]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,095: Line 2,951:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Vi (text editor)|vi]]
! {{rh}} | [[Vi (text editor)|vi]]
| {{na}}
| {{na}}
| {{na}}
| {{na}}
Line 3,106: Line 2,962:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Vim (text editor)|Vim]]
! {{rh}} | [[Vim (text editor)|Vim]]
| {{ya}}
| {{ya}}
| {{ya}}<br />Plug{{nbh}}in<ref name="vimFunctionList">''Vim'' has a popular [http://vim-taglist.sourceforge.net TagList] plug{{nbh}}in that provides a function list.</ref>
| {{ya}}<br />Plug{{nbh}}in<ref name="vimFunctionList">''Vim'' has a popular [http://vim-taglist.sourceforge.net TagList] plug{{nbh}}in that provides a function list.</ref>
Line 3,117: Line 2,973:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Visual Studio Code]]
! {{rh}} | [[Visual Studio Code]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,128: Line 2,984:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[XEmacs]]
! {{rh}} | [[XEmacs]]
| {{ya}}
| {{ya}}
| {{dunno}}
| {{dunno}}
Line 3,139: Line 2,995:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[NEdit|XNEdit]]
! {{rh}} | [[NEdit|XNEdit]]
| {{ya}}
| {{ya}}
| {{ya}}<br />Plug{{nbh}}in
| {{ya}}<br />Plug{{nbh}}in
Line 3,149: Line 3,005:
| {{na}}
| {{na}}
| {{ya}}
| {{ya}}
|-valign=top
!
! Syntax highlighting
! Function list
! Symbol database <br />(ctags or equiv.)
! Bracket matching
! Auto indentation
! Auto completion
! Code folding
! Text folding
! Compiler integration
|-
|}
|}


=== Notes ===
==Additional programming features==
 
{{sticky header}}{{sort under}}
* '''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 [[Indentation (typesetting)|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==
{{sticky header}}{{sort under}}
{| class="wikitable sticky-header sortable" style="max-width: 30em; table-layout: fixed"
{| class="wikitable sticky-header sortable" style="max-width: 30em; table-layout: fixed"
|+ Text editor support for other programming features
|-valign=bottom
|-valign=bottom
!
!
! [[shell (computing)#Text (CLI) shells|Text shell]] integration
! CLI shell integration
! [[shell (computing)#Graphical (GUI) shells|Graphical shell]] integration
! GUI shell integration
! [[macro (computer science)|Macro language]]
! Macro language
! [[collaborative real-time editor|Collaborative editing]]
! Collaborative editing
! [[#ref_lfs|Large file support]]
! Large file support
! Long line support
! Long line support
! Multi-line [[regular expression|regex]] support{{efn|name=multi_line_regex|''Multi-line regex support'' Support for expressions spanning several lines (e.g. "\n\n(.+)\n\n")}}
! Multi-line regex support
! Search in files
! Search in files
|-
|-
! nowrap {{rh}} | [[Acme (text editor)|Acme]]
! {{rh}} | [[Acme (text editor)|Acme]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,197: Line 3,031:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | AkelPad
! {{rh}} | [[Alphatk]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{na}}
| {{okay | memory}}
| {{ya}}
| {{ya}}
| {{ya}}<br />Plug{{nbh}}in
|-
! nowrap {{rh}} | [[Alphatk]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,217: Line 3,041:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[Atom (text editor)|Atom]]
! {{rh}} | [[Atom (text editor)|Atom]]
| {{na}}<br /><ref>{{Cite web|url=https://github.com/atom/atom/issues/14490|title=Feature Request: Integrated Shell/Terminal Access · Issue #14490 · atom/atom|website=GitHub}}</ref>
| {{na}}<br /><ref>{{Cite web|url=https://github.com/atom/atom/issues/14490|title=Feature Request: Integrated Shell/Terminal Access · Issue #14490 · atom/atom|website=GitHub}}</ref>
| {{dunno}}
| {{dunno}}
Line 3,227: Line 3,051:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[BBEdit]]
! {{rh}} | [[BBEdit]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,237: Line 3,061:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Bluefish (software)|Bluefish]]
! {{rh}} | [[Bluefish (software)|Bluefish]]
| {{na}}
| {{na}}
| {{ya}}
| {{ya}}
Line 3,247: Line 3,071:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[Brackets (text editor)|Brackets]]
! {{rh}} | [[Brackets (text editor)|Brackets]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,257: Line 3,081:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Coda (web development software)|Coda]]
! {{rh}} | [[Coda (web development software)|Coda]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 3,267: Line 3,091:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[ConTEXT]]
! {{rh}} | [[ConTEXT]]
| {{na}}
| {{na}}
| {{ya}}
| {{ya}}
Line 3,277: Line 3,101:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[Crimson Editor]]
! {{rh}} | [[Crimson Editor]]
| {{na}}
| {{na}}
| {{ya}}
| {{ya}}
Line 3,287: Line 3,111:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | CudaText
! {{rh}} | [[ed (text editor)|ed]]
| {{na}}
| {{na}}
| {{ya}}<br />Plug{{nbh}}in
| {{na}}
| {{dunno}}
| {{dunno}}
| {{ya}}
| {{ya}}<br />Plug{{nbh}}in
|-
! nowrap {{rh}} | [[ed (text editor)|ed]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 3,307: Line 3,121:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Editra]]
! {{rh}} | [[Editra]]
| {{dunno}}
| {{dunno}}
| {{dunno}}
| {{dunno}}
Line 3,317: Line 3,131:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[EmEditor]]
! {{rh}} | [[EmEditor]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,327: Line 3,141:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Geany]]
! {{rh}} | [[Geany]]
| {{ya}}
| {{ya}}
| {{dunno}}
| {{dunno}}
Line 3,337: Line 3,151:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[gedit]]
! {{rh}} | [[gedit]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,347: Line 3,161:
| {{ya}}<br />Plug{{nbh}}in<ref>{{Cite web|url=https://oliver.github.io/gedit-file-search/|title=Gedit File Search Plugin|website=oliver.github.io}}</ref>
| {{ya}}<br />Plug{{nbh}}in<ref>{{Cite web|url=https://oliver.github.io/gedit-file-search/|title=Gedit File Search Plugin|website=oliver.github.io}}</ref>
|-
|-
! nowrap {{rh}} | [[Emacs#GNU Emacs|GNU Emacs]]
! {{rh}} | [[Emacs#GNU Emacs|GNU Emacs]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,357: Line 3,171:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[JED (text editor)|JED]]
! {{rh}} | [[JED (text editor)|JED]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 3,367: Line 3,181:
| {{ya}}<br />Plug{{nbh}}ins
| {{ya}}<br />Plug{{nbh}}ins
|-
|-
! nowrap {{rh}} | [[jEdit]]
! {{rh}} | [[jEdit]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 3,377: Line 3,191:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Joe's Own Editor|JOE]]
! {{rh}} | [[Joe's Own Editor|JOE]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 3,387: Line 3,201:
| {{ya}}<br /><ref>{{cite web|url=https://sourceforge.net/p/joe-editor/mercurial/ci/default/tree/docs/man.md#searching-for-text|title=JOE - Joe's Own Editor|website=JOE - Joe's own editor / Mercurial / [2e4f45] /docs/man.md|access-date=23 October 2015|quote=The search covers all loaded buffers.}}</ref>
| {{ya}}<br /><ref>{{cite web|url=https://sourceforge.net/p/joe-editor/mercurial/ci/default/tree/docs/man.md#searching-for-text|title=JOE - Joe's Own Editor|website=JOE - Joe's own editor / Mercurial / [2e4f45] /docs/man.md|access-date=23 October 2015|quote=The search covers all loaded buffers.}}</ref>
|-
|-
! nowrap {{rh}} | [[JOVE]]
! {{rh}} | [[JOVE]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 3,397: Line 3,211:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Kate (text editor)|Kate]]
! {{rh}} | [[Kate (text editor)|Kate]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,407: Line 3,221:
| {{ya}}<br />Plug{{nbh}}in
| {{ya}}<br />Plug{{nbh}}in
|-
|-
! nowrap {{rh}} | [[KEDIT]]
! {{rh}} | [[KEDIT]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,417: Line 3,231:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Komodo Edit]]
! {{rh}} | [[Komodo Edit]]
| {{dunno}}
| {{dunno}}
| {{dunno}}
| {{dunno}}
Line 3,427: Line 3,241:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Komodo IDE]]
! {{rh}} | [[Komodo IDE]]
| {{dunno}}
| {{dunno}}
| {{dunno}}
| {{dunno}}
Line 3,437: Line 3,251:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[KWrite]]
! {{rh}} | [[KWrite]]
| {{na}}
| {{na}}
| {{na}}
| {{na}}
Line 3,447: Line 3,261:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[LE (text editor)|LE]]
! {{rh}} | [[LE (text editor)|LE]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 3,457: Line 3,271:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[Light Table (software)|Light Table]]
! {{rh}} | [[Light Table (software)|Light Table]]
| {{na}}
| {{na}}
| {{ya}}
| {{ya}}
Line 3,467: Line 3,281:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Metapad]]
! {{rh}} | [[Metapad]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,477: Line 3,291:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[mined (text editor)|mined]]
! {{rh}} | [[mined (text editor)|mined]]
| {{dunno}}
| {{dunno}}
| {{dunno}}
| {{dunno}}
Line 3,487: Line 3,301:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[MS-DOS Editor|EDIT (MS-DOS)]]
! {{rh}} | [[MS-DOS Editor|EDIT (MS-DOS)]]
| {{na}}
| {{na}}
| {{na}}
| {{na}}
Line 3,497: Line 3,311:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[DR-DOS|EDIT (DR-DOS)]]
! {{rh}} | [[DR-DOS|EDIT (DR-DOS)]]
| {{na}}
| {{na}}
| {{na}}
| {{na}}
Line 3,507: Line 3,321:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Nano (text editor)|Nano]]
! {{rh}} | [[Nano (text editor)|Nano]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 3,517: Line 3,331:
| {{dunno}}
| {{dunno}}
|-
|-
!
! {{rh}} | [[NEdit]]
! Text shell integration
! Graphical shell integration
! Macro language
! Collaborative editing
! Large file support
! Long line support
! Multi-line regex support
! Search in files
|-
! nowrap {{rh}} | [[NEdit]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,537: Line 3,341:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[Microsoft Notepad|Notepad]]
! {{rh}} | [[Microsoft Notepad|Notepad]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,547: Line 3,351:
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Notepad++]]
! {{rh}} | [[Notepad++]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,557: Line 3,361:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[nvi]]
! {{rh}} | [[nvi]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 3,567: Line 3,371:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[Pico (text editor)|Pico]]
! {{rh}} | [[Pico (text editor)|Pico]]
| {{dunno}}
| {{dunno}}
| {{dunno}}
| {{dunno}}
Line 3,577: Line 3,381:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[PolyEdit]]
! {{rh}} | [[PolyEdit]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,587: Line 3,391:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[PSPad]]
! {{rh}} | [[PSPad]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,597: Line 3,401:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[RJ TextEd]]
! {{rh}} | [[RJ TextEd]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,607: Line 3,411:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[Sam (text editor)|Sam]]
! {{rh}} | [[Sam (text editor)|Sam]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 3,617: Line 3,421:
| {{ya}}<br />external{{efn|name=samext}}
| {{ya}}<br />external{{efn|name=samext}}
|-
|-
! nowrap {{rh}} | [[SciTE]]
! {{rh}} | [[SciTE]]
| {{dunno}}
| {{dunno}}
| {{dunno}}
| {{dunno}}
Line 3,627: Line 3,431:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[SlickEdit]]
! {{rh}} | [[SlickEdit]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,637: Line 3,441:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Smultron]]
! {{rh}} | [[Smultron]]
| {{dunno}}
| {{dunno}}
| {{dunno}}
| {{dunno}}
Line 3,647: Line 3,451:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[SubEthaEdit]]
! {{rh}} | [[SubEthaEdit]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,657: Line 3,461:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[TED Notepad]]
! {{rh}} | [[TED Notepad]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,667: Line 3,471:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[TextEdit]]
! {{rh}} | [[TextEdit]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,677: Line 3,481:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[TextMate]]
! {{rh}} | [[TextMate]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,687: Line 3,491:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[TextPad]]
! {{rh}} | [[TextPad]]
| {{na}}
| {{na}}
| {{ya}}
| {{ya}}
Line 3,697: Line 3,501:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[TextWrangler]]
! {{rh}} | [[TextWrangler]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,707: Line 3,511:
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[The SemWare Editor]]
! {{rh}} | [[The SemWare Editor]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,717: Line 3,521:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[UltraEdit]]
! {{rh}} | [[UltraEdit]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,727: Line 3,531:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[VEDIT]]
! {{rh}} | [[VEDIT]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,737: Line 3,541:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Vi (text editor)|vi]]
! {{rh}} | [[Vi (text editor)|vi]]
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 3,747: Line 3,551:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Vim (text editor)|Vim]]
! {{rh}} | [[Vim (text editor)|Vim]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,757: Line 3,561:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Visual Studio Code]]
! {{rh}} | [[Visual Studio Code]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,767: Line 3,571:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[XEmacs]]
! {{rh}} | [[XEmacs]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,777: Line 3,581:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[NEdit|XNEdit]]
! {{rh}} | [[NEdit|XNEdit]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 3,786: Line 3,590:
| {{ya}}
| {{ya}}
| {{dunno}}
| {{dunno}}
|-
|-valign=top
!
! Text shell integration
! Graphical shell integration
! Macro language
! Collaborative editing
! Large file support
! Long line support
! Multi-line regex support
! Search in files
|}
|}
<span id="ref_lfs"></span>
'''Large file support:'''
{| cellpadding=1 style="margin-left:1em"
|-
| {{ya}}
| = Larger than 4&nbsp;GiB ([[Large file support|LFS]])
| {{ya}}2{{nbsp}}GB
| = Larger than 1&nbsp;GB, not limited by memory
|-
| {{okay | memory}}
| = Limited by available memory &nbsp;&nbsp;
| {{na}} (64&nbsp;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.<ref name="large_text_editors">''Comparison of Windows Text Editors for Large Files'': [http://www.knudvaneeden.com/tinyurl.php?urlKey=url000400 Text editors for large files]</ref>
'''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==
==Key bindings==
Support for [[keyboard shortcut#Customization|custom key bindings]].
{| class="wikitable sticky-header sortable" style="max-width: 30em; table-layout: fixed"
{| class="wikitable sortable" style="max-width: 30em; table-layout: fixed"
|+ Text editor support for key bindings.
|-valign=bottom
|-valign=bottom
!
!
! Dynamically customizable
! Custom
! [[IBM Common User Access|IBM CUA]]
! [[IBM Common User Access|IBM CUA]]
! [[macOS]]
! [[macOS]]
! [[Vi keys|Vi]]
! [[Vi keys|vi]]
! [[Emacs]]
! [[Emacs]]
! [[Pico (text editor)|Pico]]
! [[Pico (text editor)|Pico]]
Line 3,846: Line 3,616:
|{{na}}
|{{na}}
|{{na}}
|{{na}}
|-
! nowrap {{rh}} | AkelPad
|{{ya}}
|{{dunno}}
|{{dunno}}
|{{dunno}}
|{{dunno}}
|{{dunno}}
|{{dunno}}
|{{dunno}}
|{{dunno}}
|-
|-
! nowrap {{rh}} | [[Alphatk]]
! nowrap {{rh}} | [[Alphatk]]
Line 3,937: Line 3,696:
! nowrap {{rh}} | [[Crimson Editor]]
! nowrap {{rh}} | [[Crimson Editor]]
|{{dunno}}
|{{dunno}}
|{{dunno}}
|{{dunno}}
|{{dunno}}
|{{dunno}}
|{{dunno}}
|{{dunno}}
|{{dunno}}
|{{dunno}}
|-
! nowrap {{rh}} | CudaText
|{{ya}}
|{{dunno}}
|{{dunno}}
|{{dunno}}
|{{dunno}}
Line 4,495: Line 4,243:
|{{dunno}}
|{{dunno}}
|{{dunno}}
|{{dunno}}
|-valign=top
!
! Dynamically customizable
! IBM CUA
! macOS
! Vi
! Emacs
! Pico
! WordStar
! WordPerfect
! Brief
|}
|}


=== Notes, bugs ===
Notes:
* Vim: custom maps of Ctrl-1 .. Ctrl-9, Ctrl-0 cannot be set, nor is Control-Shift-&lt;char&gt; distinguished from Ctrl-&lt;char&gt;.<ref>{{Cite web|url=http://vim.1045645.n5.nabble.com/unable-to-map-ctrl-1-td1186261.html|title=Vim - General - unable to map ctrl-1|website=vim.1045645.n5.nabble.com|access-date=2017-11-30|archive-date=2017-12-01|archive-url=https://web.archive.org/web/20171201044447/http://vim.1045645.n5.nabble.com/unable-to-map-ctrl-1-td1186261.html|url-status=dead}}</ref><ref>{{Cite web|url=http://vim.1045645.n5.nabble.com/How-to-map-say-Ctrl-Shift-B-td1183582.html|title=Vim - General - How to map (say) Ctrl-Shift-B|website=vim.1045645.n5.nabble.com|access-date=2017-11-30|archive-date=2017-12-01|archive-url=https://web.archive.org/web/20171201044609/http://vim.1045645.n5.nabble.com/How-to-map-say-Ctrl-Shift-B-td1183582.html|url-status=dead}}</ref>
; Vim: Custom maps of Ctrl-1 .. Ctrl-9, Ctrl-0 cannot be set, nor is Control-Shift-&lt;char&gt; distinguished from Ctrl-&lt;char&gt;.<ref>{{Cite web|url=http://vim.1045645.n5.nabble.com/unable-to-map-ctrl-1-td1186261.html|title=Vim - General - unable to map ctrl-1|website=vim.1045645.n5.nabble.com|access-date=2017-11-30|archive-date=2017-12-01|archive-url=https://web.archive.org/web/20171201044447/http://vim.1045645.n5.nabble.com/unable-to-map-ctrl-1-td1186261.html|url-status=dead}}</ref><ref>{{Cite web|url=http://vim.1045645.n5.nabble.com/How-to-map-say-Ctrl-Shift-B-td1183582.html|title=Vim - General - How to map (say) Ctrl-Shift-B|website=vim.1045645.n5.nabble.com|access-date=2017-11-30|archive-date=2017-12-01|archive-url=https://web.archive.org/web/20171201044609/http://vim.1045645.n5.nabble.com/How-to-map-say-Ctrl-Shift-B-td1183582.html|url-status=dead}}</ref>
* Notepad++: custom shortcuts of Shift-&lt;char&gt; 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.
; Notepad++: Custom shortcuts of Shift-&lt;char&gt; 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.
; Pico: Pico uses most of Emacs's motion and deletion commands: ^F ^B ^P ^N ^D etc.


==Protocol support==
==Protocol support==
Support for editing files over a network or the Internet.
{| class="wikitable sticky-header sortable" style="max-width: 30em; table-layout: fixed"
{| class="wikitable sortable" style="max-width: 30em; table-layout: fixed"
|+ Text editor support for remote file editing over [[Lists of network protocols|network protocols]]
|-valign=bottom
|-valign=bottom
!
!
Line 4,529: Line 4,264:
| <!-- SSH -->{{na}}
| <!-- SSH -->{{na}}
| <!-- WebDAV -->{{na}}
| <!-- WebDAV -->{{na}}
|-
! nowrap {{rh}} | AkelPad
| {{na}}
| {{na}}
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[Alphatk]]
! nowrap {{rh}} | [[Alphatk]]
Line 4,579: Line 4,308:
|-
|-
! nowrap {{rh}} | [[Crimson Editor]]
! nowrap {{rh}} | [[Crimson Editor]]
| {{ya}}
| {{na}}
| {{na}}
| {{na}}
|-
! nowrap {{rh}} | CudaText
| {{ya}}
| {{ya}}
| {{na}}
| {{na}}
Line 4,866: Line 4,589:
| {{na}}
| {{na}}
| {{na}}
| {{na}}
|-valign=top
!
! [[File Transfer Protocol|FTP]]
! [[Hypertext Transfer Protocol|HTTP]]
! [[Secure Shell|SSH]]
! [[WebDAV]]
|-
|}
|}


==Unicode and other character encodings==
==Character encoding support==
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.
The following table identifies notable [[character encoding]]s that an editor supports {{endash}} 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.
 
'''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.


{{static row numbers}}{{sticky header}}
{{static row numbers}}{{sticky header}}
{| class="wikitable sortable static-row-numbers sticky-header" style="max-width: 30em;"
{| class="wikitable sortable sticky-header" style="max-width: 30em;"
|+ Text editor support for some of the most common [[character encoding]]s
|-valign=bottom
|-valign=bottom
!
!
Line 4,901: Line 4,612:
| {{ya}}
| {{ya}}
| {{dunno}}
| {{dunno}}
|-
! nowrap {{rh}} | AkelPad
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Alphatk]]
! nowrap {{rh}} | [[Alphatk]]
Line 4,934: Line 4,637:
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[Bluefish (software)|Bluefish]]]
! nowrap {{rh}} | [[Bluefish (software)|Bluefish]]
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 4,973: Line 4,676:
| {{Partial}}
| {{Partial}}
| {{na}}
| {{na}}
|-
! nowrap {{rh}} | CudaText
| {{ya}}
| {{ya}}
| {{ya}}
| {{dunno}}
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[ed (text editor)|ed]]
! nowrap {{rh}} | [[ed (text editor)|ed]]
Line 5,352: Line 5,047:


== Right-to-left and bidirectional text ==
== Right-to-left and bidirectional text ==
Support for [[Right-To-Left]] (RTL) texts is necessary for editing some languages like [[Arabic]], [[Persian language|Persian]], [[Hebrew]], and [[Yiddish language|Yiddish]] and the mixture of left to right (LTR) and RTL known as bi-directional ([[Bidirectional text|BiDi]]) support.
Support for [[right-to-left]] (RTL) text is necessary for editing some languages like [[Arabic]], [[Persian language |Persian]], [[Hebrew]], and [[Yiddish language |Yiddish]] and the mixture of left-to-right (LTR) and RTL known as [[bidirectional text |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.


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.)
{| class="wikitable sticky-header sortable" style="max-width: 30em; table-layout: fixed"
 
{| class="wikitable sortable" style="max-width: 30em; table-layout: fixed"
|+ Right to left (RTL) & bidirectional (bidi) support
|-valign=bottom
|-valign=bottom
!
!
! Right-to-left (RTL)
! RTL
! Bi-directional (Bidi)
! Bidi
|-
|-
! nowrap {{rh}} | [[Acme (text editor)|Acme]]
! nowrap {{rh}} | [[Acme (text editor)|Acme]]
| {{na}}
| {{na}}
|-
! nowrap {{rh}} | AkelPad
| {{na}}
| {{na}}
| {{na}}
| {{na}}
Line 5,482: Line 5,170:
| {{dunno}}
| {{dunno}}
| {{dunno}}
| {{dunno}}
|-
!
! RTL
! Bidi
|-
|-
! nowrap {{rh}} | [[NEdit]]
! nowrap {{rh}} | [[NEdit]]
Line 5,560: Line 5,244:
|-
|-
! nowrap {{rh}} | [[The SemWare Editor]]
! nowrap {{rh}} | [[The SemWare Editor]]
| {{na}}
| {{na}}
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[UltraEdit]]
! nowrap {{rh}} | [[UltraEdit]]
| {{na}}
| {{na}}
| {{na}}
| {{na}}
|-
|-
! nowrap {{rh}} | [[VEDIT]]
! nowrap {{rh}} | [[VEDIT]]
| {{dunno}}
| {{dunno}}
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[Vi (text editor)|vi]]
! nowrap {{rh}} | [[Vi (text editor)|vi]]
| {{dunno}}
| {{dunno}}
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[Vim (text editor)|Vim]]
! nowrap {{rh}} | [[Vim (text editor)|Vim]]
| {{ya}}
| {{ya}}
| {{ya}}<br />through terminal support
| {{ya}}<br />{{small|through <br> terminal <br> support}}
|-
|-
! nowrap {{rh}} | [[Visual Studio Code]]
! nowrap {{rh}} | [[Visual Studio Code]]
| {{na}}
| {{na}}
| {{ya}}
| {{ya}}
|-
|-
! nowrap {{rh}} | [[XEmacs]]
! nowrap {{rh}} | [[XEmacs]]
| {{dunno}}
| {{dunno}}
| {{dunno}}
| {{dunno}}
|-
|-
! nowrap {{rh}} | [[NEdit|XNEdit]]
! nowrap {{rh}} | [[NEdit|XNEdit]]
| {{na}}
| {{na}}
| {{na}}
| {{na}}
|-
|}
|-valign=top
 
!
==Newline support==
! RTL
The following table identifies [[newline]] support of editors. The three options are:
! Bidi
; CR/LF: Generally, used on [[Windows]].
|-
; LF: Generally, used on [[Unix-like]] systems (including [[macOS]]).<ref>{{Cite web|url=https://superuser.com/questions/439440/did-mac-os-lion-switch-to-using-line-feeds-lf-n-for-line-breaks-instead-of|title=Did Mac OS Lion switch to using line feeds (LF '\n') for line breaks instead of carriage returns (CR '\r')?|website=Super User}}</ref>
|}
; CR: Generally, used on [[Classic Mac OS]].
 
 
==Newline support==
{| class="wikitable sticky-header sortable" style="max-width: 30em; table-layout: fixed"
{| class="wikitable sortable" style="max-width: 30em; table-layout: fixed"
|+ Support for [[newline]] characters in line endings
|-valign=bottom
|-valign=bottom
!
!
! [[Microsoft Windows|Windows]] (CR/LF)
! CR/LF
! [[Unix-like]] systems (including [[macOS]])<ref>{{Cite web|url=https://superuser.com/questions/439440/did-mac-os-lion-switch-to-using-line-feeds-lf-n-for-line-breaks-instead-of|title=Did Mac OS Lion switch to using line feeds (LF '\n') for line breaks instead of carriage returns (CR '\r')?|website=Super User}}</ref> (LF)
! LF
! [[Classic Mac OS]] (CR)
! CR
|-
|-
! nowrap {{rh}} | [[Acme (text editor)|Acme]]
! nowrap {{rh}} | [[Acme (text editor)|Acme]]
| {{ya}}
| {{ya}}
| {{ya}}
|-
! nowrap {{rh}} | AkelPad
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 5,653: Line 5,330:
|-
|-
! nowrap {{rh}} | [[Crimson Editor]]
! nowrap {{rh}} | [[Crimson Editor]]
| {{ya}}
| {{ya}}
| {{ya}}
|-
! nowrap {{rh}} | CudaText
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
Line 5,896: Line 5,568:
| {{ya}}
| {{ya}}
| {{ya}}
| {{ya}}
|-
|-valign=top
!
! Windows (CR/LF)
! Unix-like systems (including macOS) (LF)
! Classic Mac OS (CR)
|-
|}
|}


==See also==
==See also==
*[[Editor war]]
*[[Editor war]]
*Comparison of
*[[Comparison of word processors]]
**[[Comparison of word processors|word processors]]
*[[Comparison of integrated development environments]]
**[[Comparison of integrated development environments|integrated development environments]]
*[[Comparison of HTML editors]]
**[[Comparison of HTML editors|HTML editors]]
*[[Comparison of TeX editors]]
**[[Comparison of TeX editors|TeX editors]]
*[[Comparison of hex editors]]
**[[Comparison of hex editors|hex editors]]
*[[Comparison of notetaking software]]
**[[Comparison of notetaking software|notetaking software]]
*[[Comparison of wiki software]]
**[[Comparison of wiki software|wiki software]]
*[[List of text editors]]
*Lists of
*[[List of wiki software]]
**[[List of text editors|text editors]]
*[[List of personal information managers]]
**[[List of wiki software|wiki software]]
*[[Outliner]]
**[[List of personal information managers|personal information managers]]
**outliners for
***[[Outliner#Desktop outliners|desktops]]
***[[Outliner#Mobile Device outliners|mobile devices]]
***[[Outliner#Online outliners|web-based]]


==Notes==
==Notes==

Latest revision as of 20:22, 14 December 2025

Template:Short description 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

Template:Mw-datatableTemplate:Sticky headerTemplate:Sort underTemplate:Sticky table start

Name Developer Initial release Latest release ProgramTemplate:Shyming language Cost (US$) License GUI TUI or CLI
Version Date
Template:Rh | Acme Rob Pike 1993 Plan 9 and Inferno C No cost Template:Open source Template:Ya Template:Na
Template:Rh | Alphatk Vince Darley 1999 Template:Wikidata Template:Wikidata $40 Proprietary, with BSD components Template:Ya Template:Na
Template:Rh | Atom GitHub 2014 Template:Wikidata Template:Wikidata HTML, CSS, JavaScript, C++ No cost Template:Open source Template:Ya Template:Na
Template:Rh | BBEdit Rich Siegel 1992 Template:Wikidata Template:Wikidata Objective-C, Objective-C++ No cost for most features, $49.99 for full version Proprietary Template:Ya Template:Na
Template:Rh | Bluefish Bluefish Development Team 1999 Template:Wikidata Template:Wikidata C No cost Template:Open source Template:Ya Template:Na
Template:Rh | Brackets Adobe Systems 2012 Template:Wikidata Template:Wikidata HTML, CSS, JavaScript, C++ No cost Template:Open source Template:Ya Template:Na
Template:Rh | Coda Panic 2007 Template:Wikidata Template:Wikidata Objective-C $99 Proprietary Template:Ya
Template:Rh | ConTEXT ConTEXT Project Ltd 1999 Template:Wikidata Template:Wikidata Object Pascal (Delphi) No cost Template:Open source Template:Ya
Template:Rh | Crimson Editor Ingyu Kang 1999 Template:Wikidata Template:Wikidata C++ No cost Proprietary Template:Ya
Template:Rh | ed Ken Thompson 1970 unchanged from original C No cost Template:Open source Template:Na Template:Ya
Template:Rh | Editra Cody Precord 2007 0.7.20 2013-01-05 Python No cost Template:Open source Template:Ya Template:Na
Template:Rh | EmEditor Emurasoft, Inc. 1997 21.3.0 2021-11-24 C++ $39.99 Shareware Template:Ya Template:Na
Template:Rh | epsilon Lugaru Software 1984 14.00[1] 2020-10-20 C $250 Proprietary
Template:Rh | FeatherPad Pedram Pourang 2016 Template:Wikidata Template:Wikidata C++, Qt No cost Template:Open source Template:Ya Template:Na
Template:Rh | FocusWriter Graeme Gott 2008 Template:Wikidata Template:Wikidata C++, Qt No cost Template:Open source Template:Ya Template:Na
Template:Rh | gedit GNU Project 2000 Template:Wikidata Template:Wikidata C No cost Template:Open source Template:Ya Template:Na
Template:Rh | Geany Enrico Tröger 2005 Template:Wikidata Template:Wikidata C, GTK+ No cost Template:Open source Template:Ya Template:Na
Template:Rh | GNU Emacs Richard Stallman 1984 Template:Wikidata Template:Wikidata C, Emacs Lisp No cost Template:Open source Template:Ya Template:Ya
Template:Rh | GNU nano Chris Allegretta 1999 Template:Wikidata Template:Wikidata C No cost Template:Open source Template:Na Template:Ya
Template:Rh | 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 Template:Ya Template:Na
Template:Rh | JED John E. Davis 1992 Template:Wikidata Template:Wikidata C, S-Lang No cost Template:Open source Template:Na Template:Ya
Template:Rh | jEdit Slava Pestov 1998 Template:Wikidata Template:Wikidata Java No cost Template:Open source Template:Ya Template:Na
Template:Rh | JOE Joseph Allen 1988 Template:Wikidata Template:Wikidata C No cost Template:Open source Template:Na Template:Ya
Template:Rh | JOVE Johnathon Payne 1983 Template:Wikidata Template:Wikidata C No cost Template:Open source Template:Na Template:Ya
Template:Rh | Kate KDE Project 2000-12 Template:Wikidata Template:Wikidata C++ No cost Template:Open source Template:Ya Template:Na
Template:Rh | KEDIT Mansfield Software Group, Inc. 1983 1.6.1 2016-12-05 C $129 Proprietary Template:Na Template:Ya
Template:Rh | Komodo Edit Activestate 2007 Template:Wikidata Template:Wikidata Python, JavaScript, Perl, Tcl, PHP, Ruby No cost Template:Open source Template:Ya Template:Na
Template:Rh | Komodo IDE Activestate 2001 Template:Wikidata Template:Wikidata Python, JavaScript, Perl, Tcl, PHP, Ruby $295 Proprietary Template:Ya Template:Na
Template:Rh | KWrite KDE Project 2000 Template:Wikidata Template:Wikidata C++ No cost Template:Open source Template:Ya Template:Na
Template:Rh | LE Alexander V. Lukyanov 1997 Template:Wikidata Template:Wikidata C++ No cost Template:Open source Template:Na Template:Ya
Template:Rh | Leo Edward K. Ream 1996 Template:Wikidata Template:Wikidata Python No cost Template:Open source Template:Ya Template:Na
Template:Rh | Light Table Chris Granger 2012 Template:Wikidata Template:Wikidata ClojureScript No cost Template:Open source Template:Ya Template:Na
Template:Rh | mcedit Miguel de Icaza 1994 Template:Wikidata Template:Wikidata C, Python, PHP, Javascript, Perl, Tcl, Ruby No cost Template:Open source Template:Na Template:Ya
Template:Rh | Metapad Alexander Davidson 1999 Template:Wikidata Template:Wikidata C No cost Template:Open source Template:Ya Template:Na
Template:Rh | mg Dave Conroy 1986 currentTemplate:Efn 2020-07-22 C No cost Template:Open source Template:Na Template:Ya
Template:Rh | MinEd Thomas Wolff 1992 2022.27 2022-12-23 C No cost Template:Open source Template:Na Template:Ya
Template:Rh | MS-DOS Editor Microsoft 1991 2.0.026 Bundled with MS-DOS, Microsoft Windows Proprietary Template:Na Template:Ya
Template:Rh | ne Sebastiano Vigna
Todd Lewis
Daniele Filaretti
1993 Template:Wikidata Template:Wikidata C No cost Template:Open source Template:Na Template:Ya
Template:Rh | NEdit Mark Edel 1991 Template:Wikidata Template:Wikidata C No cost Template:Open source Template:Ya Template:Na
Template:Rh | Notepad Microsoft 1985 11.2302.16.0 MASM (originally) Bundled with Microsoft Windows Proprietary Template:Ya Template:Na
Template:Rh | Notepad++ Don Ho 2003-11-25 Template:Wikidata Template:Wikidata C++ No cost Template:Open source Template:Ya Template:Na
Template:Rh | nvi Keith Bostic 1994 Template:Wikidata Template:Wikidata C No cost Template:Open source Template:Na Template:Ya
Template:Rh | Pico University of Washington 1992 4.64 C No cost Template:Open source Template:Na Template:Ya
Template:Rh | PolyEdit PolySoft Solutions 1998 5.4 2010Template:Nbh04Template:Nbh07 $27.95 Shareware Template:Ya Template:Na
Template:Rh | PSPad Jan Fiala 2002 Template:Wikidata Template:Wikidata Object Pascal (Delphi) No cost Proprietary Template:Ya Template:Na
Template:Rh | RJ TextEd Rickard Johansson 2004 Template:Wikidata Template:Wikidata Object Pascal (Delphi) No cost Proprietary Template:Ya Template:Na
Template:Rh | Sam Rob Pike 1980s (early) stable C No cost Template:Open source Template:Na Template:Ya
Template:Rh | SciTE Neil Hodgson 1999 Template:Wikidata Template:Wikidata C++ $41.99 for macOS. No cost for others Template:Open source Template:Ya Template:Na
Template:Rh | SlickEdit SlickEdit, Inc. 1988 28.0.1 2024-01-21 C, Slick-C $299 Proprietary Template:Ya Template:Na
Template:Rh | Smultron Peter Borg 2004 Template:Wikidata Template:Wikidata Objective-C $7.99 Proprietary Template:Ya Template:Na
Template:Rh | SubEthaEdit TheCodingTemplate:ShyMonkeys 2003 Template:Wikidata Template:Wikidata No cost Template:Open source Template:Ya
Template:Rh | Sublime Text from=Q267193}} 2008 Template:Wikidata Template:Wikidata from=Q267193}} $99 Shareware Template:Ya Template:Na
Template:Rh | TED Notepad Juraj Simlovic 2001 Template:Wikidata Template:Wikidata C No cost Proprietary Template:Ya Template:Na
Template:Rh | Textadept Mitchell 2007 Template:Wikidata Template:Wikidata C, Lua No cost Template:Open source Template:Ya Template:Ya
Template:Rh | TextEdit Apple Inc. 2001 Template:Wikidata Template:Wikidata No cost (also bundled with macOS) Template:Open source Template:Ya Template:Na
Template:Rh | TextMate MacroMates 2004-10-10 Template:Wikidata Template:Wikidata Objective-C++ No cost Template:Open source Template:Ya Template:Na
Template:Rh | TextPad Helios Software Solutions 1992 Template:Wikidata Template:Wikidata $30.00 (£16.50) Shareware Template:Ya Template:Na
Template:Rh | TextWrangler Bare Bones Software 2003 5.5.2 2016-09-20 No cost Proprietary Template:Ya
Template:Rh | The SemWare Editor Sammy Mitchell 1985-11 Template:Wikidata Template:Wikidata C, SAL No cost Template:Open source
Template:Rh | UltraEdit IDM Computer Solutions 1994 25.0 2018-03-12 C++ $99.95 Proprietary Template:Ya Template:Na
Template:Rh | VEDIT Ted Green, Greenview Data 1980 6.24.2 2015-01-12 Assembly, C $89 standard, $239 Pro64 Proprietary Template:Ya Template:Ya
Template:Rh | vi Bill Joy 1976 3.7 C No cost Template:Open source or CDDL Template:Na Template:Ya
Template:Rh | Vim Bram Moolenaar 1991 Template:Wikidata Template:Wikidata C, Vim script No cost Template:Open source Template:Ya Template:Ya
Template:Rh | Visual Studio Code Microsoft 2015 Template:Wikidata Template:Wikidata JavaScript, TypeScript No cost Source code: MIT[2]
Binaries built by Microsoft: Proprietary[3][4]
Template:Ya Template:Na
Template:Rh | XEmacs Lucid Inc. 1991 Template:Wikidata Template:Wikidata C, Emacs Lisp No cost Template:Open source Template:Ya Template:Ya
Template:Rh | XNEdit Olaf Wintermann 2018 1.5.2 2023-10-05 C No cost Template:Open source Template:Ya Template:Na

Template:Sticky table end

Operating system support

Template:Sticky headerTemplate:Sort under

Natural language (localization)

Languages
nowrap Template:Rh | Acme English
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 | 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

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

Template:Sticky headerTemplate:Sort under

Basic features

Template:Sticky headerTemplate:Sort under

Programming features

Template:Sticky headerTemplate:Sort under

Additional programming features

Template:Sticky headerTemplate:Sort under

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>.[66][67]
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

  1. REDIRECT Template:En dash

Template:R protected 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.

Template:Static row numbersTemplate:Sticky header

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).[76]
CR
Generally, used on Classic Mac OS.

See also

Notes

Template:Notelist

References

<templatestyles src="Reflist/styles.css" />

  1. Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".
  6. Script error: No such module "citation/CS1".
  7. Script error: No such module "citation/CS1".
  8. Script error: No such module "citation/CS1".
  9. Script error: No such module "citation/CS1".
  10. Script error: No such module "citation/CS1".
  11. Script error: No such module "citation/CS1".
  12. Script error: No such module "citation/CS1".
  13. Script error: No such module "citation/CS1".
  14. Script error: No such module "citation/CS1".
  15. a b Script error: No such module "citation/CS1".
  16. a b NEdit supports spell checking via a plugTemplate:Nbhin
  17. Notepad++ 6.3.3 Template:Webarchive and above support spell checking via the DSpellCheck plugTemplate:Nbhin, which is included with the default package.
  18. SubEthaEdit supports advanced block editing, including multi-line typing and non-contiguous block selections.
  19. Script error: No such module "citation/CS1".
  20. Script error: No such module "citation/CS1".
  21. Script error: No such module "citation/CS1".
  22. Script error: No such module "citation/CS1".
  23. Script error: No such module "citation/CS1".
  24. Vim has a popular TagList plugTemplate:Nbhin that provides a function list.
  25. Script error: No such module "citation/CS1".
  26. Script error: No such module "citation/CS1".
  27. Script error: No such module "citation/CS1".
  28. "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.
  29. Script error: No such module "citation/CS1".
  30. Script error: No such module "citation/CS1".
  31. Script error: No such module "citation/CS1".
  32. Script error: No such module "citation/CS1".
  33. Script error: No such module "citation/CS1".
  34. Script error: No such module "citation/CS1".
  35. Script error: No such module "citation/CS1".
  36. a b kwrite-devel, Large Files open slowly due to futile Syntax-Highlighting
  37. a b Script error: No such module "citation/CS1".
  38. Lines longer than ~700 characters frequently cause crashes. KatePart documentation Template:Webarchive (which is also the KWrite documentation, see here Template:Webarchive)
  39. metapad FAQ, Loading Large Files
  40. Script error: No such module "citation/CS1".Template:Cbignore
  41. Script error: No such module "citation/CS1".
  42. Script error: No such module "citation/CS1".
  43. Script error: No such module "citation/CS1".
  44. Script error: No such module "citation/CS1".
  45. "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.
  46. Script error: No such module "citation/CS1".
  47. Script error: No such module "citation/CS1".
  48. a b Script error: No such module "citation/CS1".
  49. Script error: No such module "citation/CS1".
  50. 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.
  51. 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.
  52. a b c d Script error: No such module "citation/CS1".
  53. Script error: No such module "citation/CS1".
  54. Script error: No such module "citation/CS1".
  55. Kate supports an optional VI Input Mode Template:Webarchive.
  56. 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.
  57. Script error: No such module "citation/CS1".
  58. Vedit: Old Unix and QNX versions could emulate Vi 100%. Windows version doesn't come with vi emulation.
  59. Script error: No such module "citation/CS1".
  60. Script error: No such module "citation/CS1".
  61. Script error: No such module "citation/CS1".
  62. Script error: No such module "citation/CS1".
  63. Script error: No such module "citation/CS1".
  64. Script error: No such module "citation/CS1".
  65. Script error: No such module "citation/CS1".
  66. Script error: No such module "citation/CS1".
  67. Script error: No such module "citation/CS1".
  68. a b Text Editor Features Template:Webarchive at ConTEXT.cx
  69. a b jEdit FTP and SFTP are supported via the FTP plugTemplate:Nbhin.
  70. jEdit: "HTTP is supported natively"
  71. a b Script error: No such module "citation/CS1".
  72. Script error: No such module "citation/CS1".
  73. a b c d Vim Supported via netrw plugTemplate:Nbhin distributed in the standard Vim installation.
  74. a b c d Script error: No such module "citation/CS1".
  75. Script error: No such module "citation/CS1".
  76. Script error: No such module "citation/CS1".
  77. Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".