Introduction
You are reading about GNU Emacs, the GNU incarnation of the advanced,
self-documenting, customizable, extensible real-time display editor Emacs.
(The `G' in `GNU' is not silent.)
We say that Emacs is a display editor because normally the text
being edited is visible on the screen and is updated automatically as you
type your commands. See Display.
We call it a real-time editor because the display is updated very
frequently, usually after each character or pair of characters you
type. This minimizes the amount of information you must keep in your
head as you edit. See Real-time.
We call Emacs advanced because it provides facilities that go beyond
simple insertion and deletion: controlling subprocesses; automatic
indentation of programs; viewing two or more files at once; editing
formatted text; and dealing in terms of characters, words, lines,
sentences, paragraphs, and pages, as well as expressions and comments in
several different programming languages.
Self-documenting means that at any time you can type a special
character, Control-h, to find out what your options are. You can
also use it to find out what any command does, or to find all the commands
that pertain to a topic. See Help.
Customizable means that you can change the definitions of Emacs
commands in little ways. For example, if you use a programming language in
which comments start with ‘<**’ and end with ‘**>’, you can tell
the Emacs comment manipulation commands to use those strings
(see Comments). Another sort of customization is rearrangement of the
command set. For example, if you prefer the four basic cursor motion
commands (up, down, left and right) on keys in a diamond pattern on the
keyboard, you can rebind the keys that way. See Customization.
Extensible means that you can go beyond simple customization and
write entirely new commands, programs in the Lisp language to be run by
Emacs's own Lisp interpreter. Emacs is an “on-line extensible”
system, which means that it is divided into many functions that call
each other, any of which can be redefined in the middle of an editing
session. Almost any part of Emacs can be replaced without making a
separate copy of all of Emacs. Most of the editing commands of Emacs
are written in Lisp; the few exceptions could have been written
in Lisp but are written in C for efficiency. Although only a programmer
can write an extension, anybody can use it afterward. See Emacs Lisp Intro, if you want to learn Emacs Lisp programming.
When run under the X Window System, Emacs provides its own menus and
convenient bindings to mouse buttons. But Emacs can provide many of the
benefits of a window system on a text-only terminal. For instance, you
can look at or edit several files at once, move text between files, and
edit files while running shell commands.