Emacs

HomePage | Recent changes | View source | Discuss this page | Page history | Log in |

Printable version | Disclaimers | Privacy policy

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.

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:

External Links