|This article does not cite any sources. (December 2009) (Learn how and when to remove this template message)|
A line editor is a text editor computer program in which each editing command applies to one or more complete lines of text designated by the user. Line editors precede screen-based text editors and originated in an era when a computer operator typically interacted with a teleprinter (essentially a printer with a keyboard), with no video display, and no ability to navigate a cursor interactively in a document. Line editors were also a feature of many home computers, avoiding the need for a more memory-intensive full-screen editor.
Line editors are limited to typewriter keyboard text-oriented input and output methods. Most edits are a line-at-a-time. Typing, editing, and document display do not occur simultaneously. Typically, typing does not enter text directly into the document. Instead, users modify the document text by entering terse commands on a text-only terminal. Commands and text, and corresponding output from the editor, will scroll up from the bottom of the screen in the order that they are entered or printed to the screen. Although the commands typically indicate the line(s) they modify, displaying the edited text within the context of larger portions of the document requires a separate command. Line editors keep a reference to the 'current line' to which the entered commands usually are applied. In contrast, modern screen based editors allow the user to interactively and directly navigate, select, and modify portions of the document. Generally line numbers or a search based context (especially when making changes within lines) are used to specify which part of the document is to be edited or displayed.
Early line editors included TECO and QED, both dating back to pre-UNIX era OSes. Emacs grew out of a set of macros written for TECO. The UNIX editor ed is a classic example of a line editor. For the first 10 years of the PC, the only editor provided in DOS was the Edlin line editor.
Line editors are still used non-interactively in shell scripts. Patch systems such as patch (Unix) traditionally used diff data that was a script of ed commands. They are also used in many MUD systems, though many people prefer to edit text on their own computer and then use their MUD client's upload feature to paste the text directly in the line editor.