Next: Text Characters Prev: Keys Up: Top
Keys and Commands
This manual is full of passages that tell you what particular keys
do. But Emacs does not assign meanings to keys directly. Instead,
Emacs assigns meanings to named "commands", and then gives keys their
meanings by "binding" them to commands.
Every command has a name chosen by a programmer. The name is usually
made of a few English words separated by dashes; for example,
`next-line' or `forward-word'. A command also has a "function
definition" which is a Lisp program; this is what makes the command do
what it does. In Emacs Lisp, a command is actually a special kind of
Lisp function; one which specifies how to read arguments for it and
call it interactively. For more information on commands and functions,
see Note: What Is a Function. (The
definition we use in this manual is simplified slightly.)
The bindings between keys and commands are recorded in various tables
called "keymaps". Note: Keymaps.
When we say that "`C-n' moves down vertically one line" we are
glossing over a distinction that is irrelevant in ordinary use but is
vital in understanding how to customize Emacs. It is the command
`next-line' that is programmed to move down vertically. `C-n' has this
effect *because* it is bound to that command. If you rebind `C-n' to
the command `forward-word' then `C-n' will move forward by words
instead. Rebinding keys is a common method of customization.
In the rest of this manual, we usually ignore this subtlety to keep
things simple. To give the customizer the information he needs, we
state the name of the command which really does the work in parentheses
after mentioning the key that runs it. For example, we will say that
"The command `C-n' (`next-line') moves point vertically down," meaning
that `next-line' is a command that moves vertically down and `C-n' is a
key that is standardly bound to it.
While we are on the subject of information for customization only,
it's a good time to tell you about "variables". Often the description
of a command will say, "To change this, set the variable `mumble-foo'."
A variable is a name used to remember a value. Most of the variables
documented in this manual exist just to facilitate customization: some
command or other part of Emacs examines the variable and behaves
differently accordingly. Until you are interested in customizing, you
can ignore the information about variables. When you are ready to be
interested, read the basic information on variables, and then the
information on individual variables will make sense. Note: Variables.
automatically generated by info2www