Emacs is an extremely versatile text editor originally written by Richard Stallman as a set of Editor MACroS for the text editor Teco. |
Emacs is an extremely versatile text editor, popular with programmers. It was originally written by Richard Stallman as a set of Editor MACroS for the text editor Teco. |
Emacs ("the extensible, customizable, self-documenting real-time display editor", according to its manual) is based around a Lisp interpreter (itself written in C), with the bulk of the functionality then written in Lisp. Because of this design, it is easy for programmers and users to add functionality to Emacs. Many have done so, and Emacs can be used to surf the web, read email and [Usenet news]?, play tetris and provide basic AI psychoanalysis. In addition, Emacs can serve as an IDE (integrated development environment), allowing programmers to edit, compile, and debug their code within a single interface. |
Since its original incarnation, Emacs has been re-implemented multiple times. The two most popular versions nowadays are GNU Emacs (also written by Stallman) and its close relative XEmacs. Strictly speaking, the lower-case word emacs (plural emacsen) refers to the class of Emacs-like editors; the capitalized word Emacs is synonymous with GNU Emacs. |
Two popular version of Emacs are [GNU Emacs]? and XEmacs. |
Emacs is described, in its manual, as "the extensible, customizable, self-documenting real-time display editor." It is built on a Lisp interpreter written in C. Most of the editing functions are written in Lisp, and evaluated ("executed") at run-time. Because of this design, it is easy for programmers and users to add custom functionality to Emacs, and many have done so. Standard Emacs extensions now allow one to surf the web, read email and [Usenet news]?, play tetris, and even receive basic psychoanalysis (via an implementation of ELIZA.) In addition, Emacs can serve as an IDE, allowing programmers to edit, compile, and debug their code within a single interface. |
Emacs is an example of a buffer gap editor, in which the contents of a document are stored in a data structure which consists of a single buffer with a gap where the current edit point resides. As a result, editing operations such as adding or deleting a few characters do not have to modify much memory, and operations such as searching are relatively simple. The competing form of storage for documents is to store each line of the document in a small buffer. Unfortunately, Emacs efficiency at manipulating text is often outweighed by the inefficiency of its interpreted Lisp code, leading to the joke that EMACS stands for Eight Megabytes And Constantly Swapping. Fortunately, modern computers have plenty of memory and performance to run Emacs. |
The downside to Emacs' design is the overhead from interpreting the Lisp code. Two joke acronyms for EMACS are Eight Megabytes And Constantly Swapping, and Emacs Makes A Computer Slow. Modern computers generally have enough memory and processor power, compared to the systems on which Emacs was first implemented, that this issue is largely moot. Nevertheless, this is a frequent point raised by Emacs' detractors during editor wars. Emacs is an example of a buffer gap editor: the contents of a document are stored in a data structure, which consists of a single buffer with a gap where the current edit point resides. With this design, editing operations such as adding or deleting a few characters do not have to modify much memory, and operations such as searching are relatively simple. The competing form of storage for documents is to store each line of the document in a small buffer. |
It is part of the culture of many programmers to treat their favorite editor with a religious reverence bordering on fanaticism, and to make fun of themselves doing so. There is an active Usenet group alt.religion.emacs devoted to the Emacs side of the "holy war" with its major competitor, vi. Users have also created myths, dogma, rituals, and other trappings of religion in honor of the editor. |
*http://www.gnu.org/software/emacs/emacs-paper.html -- A paper by Stallman on the design of the original Emacs |
|
Since its original incarnation, Emacs has been re-implemented multiple times. The two most popular versions nowadays are GNU Emacs (also written by Stallman) and its close relative XEmacs. Strictly speaking, the lower-case word emacs (plural emacsen) refers to the class of Emacs-like editors; the capitalized word Emacs is synonymous with GNU Emacs.
Emacs is described, in its manual, as "the extensible, customizable, self-documenting real-time display editor." It is built on a Lisp interpreter written in C. Most of the editing functions are written in Lisp, and evaluated ("executed") at run-time. Because of this design, it is easy for programmers and users to add custom functionality to Emacs, and many have done so. Standard Emacs extensions now allow one to surf the web, read email and [Usenet news]?, play tetris, and even receive basic psychoanalysis (via an implementation of ELIZA.) In addition, Emacs can serve as an IDE, allowing programmers to edit, compile, and debug their code within a single interface.
The downside to Emacs' design is the overhead from interpreting the Lisp code. Two joke acronyms for EMACS are Eight Megabytes And Constantly Swapping, and Emacs Makes A Computer Slow. Modern computers generally have enough memory and processor power, compared to the systems on which Emacs was first implemented, that this issue is largely moot. Nevertheless, this is a frequent point raised by Emacs' detractors during editor wars.
Emacs is an example of a buffer gap editor: the contents of a document are stored in a data structure, which consists of a single buffer with a gap where the current edit point resides. With this design, editing operations such as adding or deleting a few characters do not have to modify much memory, and operations such as searching are relatively simple. The competing form of storage for documents is to store each line of the document in a small buffer.
The current version of GNU Emacs is 21.1, released on October 20th, 2001.
See also: