

The resulting system was called EMACS, which stood for "Editing MACroS". After one night of joint hacking by Steele and Stallman, the latter finished the implementation, which included facilities for extending and documenting the new macro set. Two years later, Guy Steele took on the project of unifying the overly diverse macros into a single set. The new version of TECO quickly became popular at the AI Lab, and soon there accumulated a large collection of custom macros, whose names often ended in "MAC" or "MACS", which stood for "macro". Almost all modern editors use this approach. To provide random access in Emacs, Stallman decided not to adopt E's approach of structuring the file for page-random access on disk, but instead modified TECO to handle large buffers more efficiently, and then changed its file management method to read, edit, and write the entire file as a single buffer. Typical editing could only be done on one page at a time, in the order of the pages in the file. Since TECO's original implementation was designed for editing paper tape on the PDP-1, it was a page-sequential editor. Į had another feature which TECO lacked: random-access editing. Stallman reimplemented this mode to run efficiently, then added a macro feature to the TECO display-editing mode, allowing the user to redefine any keystroke to run a TECO program. He returned to MIT where Carl Mikkelsen, a hacker at the AI Lab, had added a combined display+editing mode called "Control-R" to TECO, allowing the screen display to be updated each time the user entered a keystroke. The editor had an intuitive WYSIWYG (What You See Is What You Get) behavior as used almost universally by modern text editors, which impressed Stallman. Richard Stallman visited the Stanford AI Lab in 1972 or 1974 and saw the lab's "E" editor, written by Fred Wright. This behavior is similar to the program ed.
#Aquamacs emacs license series#
Typing characters into TECO did not place those characters directly into a document one had to write a series of instructions in the TECO command language telling it to enter the required characters, during which time the edited text was not displayed on the screen. Unlike most modern text editors, TECO has separate modes which the user used to either add text, edit existing text, or display the document.


Before its introduction, the Incompatible Timesharing System (ITS), the operating system on the AI Lab's PDP-6 and PDP-10 computers, featured a default line editor known as Tape Editor and Corrector (TECO) (later changed to Text Editor and Corrector, the ‘tape' referring to paper tape). XEmacs has remained mostly compatible and continues to use Emacs Lisp like GNU Emacs.Įmacs development began at the MIT AI Lab during the 1970s. Another version in common use, XEmacs, was forked from GNU Emacs in 1991. The most popular (and most ported) version of Emacs is GNU Emacs, created by Stallman for the GNU Project. The word "emacs" is often pluralized as emacsen, by analogy with boxen (itself used by analogy with oxen) and VAXen. In Unix culture, Emacs became one of the two main contenders in the traditional editor wars, the other being vi. It was inspired by the ideas of TECMAC and TMACS, a pair of TECO-macro editors written by Steele, Dave Moon, Richard Greenblatt, Charles Frankston, and others. It was written in 1976 by Richard Stallman, initially together with Guy L. The original EMACS consisted of a set of Editor MACroS for the TECO editor. Emacs has over 2,000 built-in commands and allows the user to combine these commands into macros to automate work, in particular with the use of Emacs Lisp, a variant of Lisp, providing a deep extension capability.
#Aquamacs emacs license manual#
One manual describes it as "the extensible, customizable, self-documenting, real-time display editor." Development began in the mid-1970s and continues actively as of 2012. (March 2012)Įmacs ( / ˈ iː m æ k s /) is a family of text editors, characterized by their extensibility. This article may require copy editing for grammar, style, cohesion, tone, or spelling.
