Text editor

Since the early days of computers, plain text was (once by necessity and now by convention) generally displayed using a monospace font, such that horizontal alignment and columnar formatting were sometimes done using whitespace characters.

Commands (often a single keystroke) effected edits to a file at an imaginary insertion point called the "cursor".

Also written in the 1970s was the UCSD Pascal Screen Oriented Editor, which was optimized both for indented source code and general text.

[11] Emacs, one of the first free and open-source software projects, is another early full-screen or real-time editor, one that was ported to many systems.

[13] The core data structure in a text editor is the one that manages the string (sequence of characters) or list of records that represents the current state of the file being edited.

[14] A typical text editor uses a gap buffer, a linked list of lines (as in PaperClip), a piece table, or a rope, as its sequence data structure.

Under Apple Macintosh's classic Mac OS there was the native TeachText later replaced by SimpleText in 1994, which was replaced in Mac OS X by TextEdit, which combines features of a text editor with those typical of a word processor such as rulers, margins and multiple font selection.

These features are not available simultaneously, but must be switched by user command, or through the program automatically determining the file type.

Non-WYSIWYG word processors, such as WordStar, are more easily pressed into service as text editors, and in fact were commonly used as such during the 1980s.

Specialized editors have optimizations such as only storing the visible portion of large files in memory, improving editing performance.

Emacs can even be programmed to emulate Vi, its rival in the traditional editor wars of Unix culture.

Many text editors for software developers include source code syntax highlighting and automatic indentation to make programs easier to read and write.

Programming editors often let the user select the name of an include file, function or variable, then jump to its definition.

Some also allow for easy navigation back to the original section of code by storing the initial cursor location or by displaying the requested definition in a popup window or temporary buffer.

Editors like Leafpad , shown here, are often included with operating systems as a default helper application for opening text files.
A box of punched cards with several program decks.
Emacs, a text editor popular among programmers, running on Microsoft Windows
gedit is a text editor shipped with GNOME