But the Emacs character set has room for control variants of all
printing characters, and for distinguishing between @kbd{C-a} and
-@kbd{C-A}. X Windows makes it possible to enter all these characters.
-For example, @kbd{C--} (that's Control-Minus) and @kbd{C-5} are
-meaningful Emacs commands under X.
+@kbd{C-A}. The X Window System makes it possible to enter all these
+characters. For example, @kbd{C--} (that's Control-Minus) and @kbd{C-5}
+are meaningful Emacs commands under X.
Another Emacs character-set extension is additional modifier bits.
Only one modifier bit is commonly used; it is called Meta. Every
@cindex @key{ESC} replacing @key{META} key
Some terminals have a @key{META} key, and allow you to type Meta
characters by holding this key down. Thus, @kbd{Meta-a} is typed by
-holding down @key{META} and pressing @kbd{a}. The @key{META} key works
-much like the @key{SHIFT} key. Such a key is not always labeled
-@key{META}, however, as this function is often a special option for a key
-with some other primary purpose.@refill
+holding down @key{META} and pressing @kbd{a}. The @key{META} key
+works much like the @key{SHIFT} key. Such a key is not always labeled
+@key{META}, however, as this function is often a special option for a
+key with some other primary purpose. Sometimes it is labeled
+@key{ALT} or @key{EDIT}; on a Sun keyboard, it may have a diamond on
+it.
If there is no @key{META} key, you can still type Meta characters
-using two-character sequences starting with @key{ESC}. Thus, to enter
-@kbd{M-a}, you could type @kbd{@key{ESC} a}. To enter @kbd{C-M-a}, you
-would type @kbd{@key{ESC} C-a}. @key{ESC} is allowed on terminals with
-@key{META} keys, too, in case you have formed a habit of using it.
-
- X Windows provides several other modifier keys that can be applied to
-any input character. These are called @key{SUPER}, @key{HYPER} and
-@key{ALT}. We write @samp{s-}, @samp{H-} and @samp{A-} to say that a
-character uses these modifiers. Thus, @kbd{s-H-C-x} is short for
-@kbd{Super-Hyper-Control-x}. Not all X terminals actually provide keys
-for these modifier flags---in fact, many terminals have a key labeled
-@key{ALT} which is really a @key{META} key. The standard key bindings
-of Emacs do not include any characters with these modifiers. But you
-can assign them meanings of your own by customizing Emacs.
+using two-character sequences starting with @key{ESC}. Thus, you can
+enter @kbd{M-a} by typing @kbd{@key{ESC} a}. You can enter
+@kbd{C-M-a} by typing @kbd{@key{ESC} C-a}. Unlike @key{META}, which
+modifies other characters, @key{ESC} is a separate character. You
+don't hold down @key{ESC} while typing the next character; instead,
+you press it and release it, then you enter the next character.
+@key{ESC} is allowed on terminals with @key{META} keys, too, in case
+you have formed a habit of using it.
+
+ The X Window System provides several other modifier keys that can be
+applied to any input character. These are called @key{SUPER},
+@key{HYPER} and @key{ALT}. We write @samp{s-}, @samp{H-} and @samp{A-}
+to say that a character uses these modifiers. Thus, @kbd{s-H-C-x} is
+short for @kbd{Super-Hyper-Control-x}. Not all X terminals actually
+provide keys for these modifier flags---in fact, many terminals have a
+key labeled @key{ALT} which is really a @key{META} key. The standard
+key bindings of Emacs do not include any characters with these
+modifiers. But you can assign them meanings of your own by customizing
+Emacs.
+
+ If your keyboard lacks one of these modifier keys, you can enter it
+using @kbd{C-x @@}: @kbd{C-x @@ h} adds the ``hyper'' flag to the next
+character, @kbd{C-x @@ s} adds the ``super'' flag, and @kbd{C-x @@ a}
+adds the ``alt'' flag. For instance, @kbd{C-x @@ h C-a} is a way to
+enter @kbd{Hyper-Control-a}. (Unfortunately there is no way to add
+two modifiers by using @kbd{C-x @@} twice for the same character,
+because the first one goes to work on the @kbd{C-x}.)
Keyboard input includes keyboard keys that are not characters at all:
for example function keys and arrow keys. Mouse buttons are also
@cindex key sequence
@cindex key
A @dfn{key sequence} (@dfn{key}, for short) is a sequence of input
-events that are meaningful as a unit---as ``a single command.''
-Some Emacs command sequences are just one character or one event; for
-example, just @kbd{C-f} is enough to move forward one character. But
-Emacs also has commands that take two or more events to invoke.
+events that are meaningful as a unit---as ``a single command.'' Some
+Emacs command sequences are just one character or one event; for
+example, just @kbd{C-f} is enough to move forward one character in the
+buffer. But Emacs also has commands that take two or more events to
+invoke.
@cindex complete key
@cindex prefix key
command bindings. A few of them are prefix keys. A prefix key combines
with the following input event to make a longer key sequence, which may
itself be complete or a prefix. For example, @kbd{C-x} is a prefix key,
-so @kbd{C-x} and the next input event combine to make a two-character
+so @kbd{C-x} and the next input event combine to make a two-event
key sequence. Most of these key sequences are complete keys, including
@kbd{C-x C-f} and @kbd{C-x b}. A few, such as @kbd{C-x 4} and @kbd{C-x
-r}, are themselves prefix keys that lead to three-character key
+r}, are themselves prefix keys that lead to three-event key
sequences. There's no limit to the length of a key sequence, but in
practice people rarely use sequences longer than four events.
By contrast, you can't add more events onto a complete key. For
-example, the two-character sequence @kbd{C-f C-k} is not a key, because
+example, the two-event sequence @kbd{C-f C-k} is not a key, because
the @kbd{C-f} is a complete key in itself. It's impossible to give
@kbd{C-f C-k} an independent meaning as a command. @kbd{C-f C-k} is two
key sequences, not one.@refill
All told, the prefix keys in Emacs are @kbd{C-c}, @kbd{C-h},
@kbd{C-x}, @kbd{C-x @key{RET}}, @kbd{C-x @@}, @kbd{C-x a}, @kbd{C-x n}, @w{@kbd{C-x
-r}}, @kbd{C-x v}, @kbd{C-x 4}, @kbd{C-x 5}, @kbd{C-x 6}, @key{ESC},
-@kbd{M-g} and @kbd{M-j}. But this list is not cast in concrete; it is
+r}}, @kbd{C-x v}, @kbd{C-x 4}, @kbd{C-x 5}, @kbd{C-x 6}, @key{ESC}, and
+@kbd{M-g}. But this list is not cast in concrete; it is
just a matter of Emacs's standard key bindings. If you customize Emacs,
you can make new prefix keys, or eliminate these. @xref{Key Bindings}.
If you do make or eliminate prefix keys, that changes the set of
possible key sequences. For example, if you redefine @kbd{C-f} as a
prefix, @kbd{C-f C-k} automatically becomes a key (complete, unless you
-define it too as a prefix). Conversely, if you remove the prefix
+define that too as a prefix). Conversely, if you remove the prefix
definition of @kbd{C-x 4}, then @kbd{C-x 4 f} (or @kbd{C-x 4
@var{anything}}) is no longer a key.
Typing the help character (@kbd{C-h} or @key{F1}) after a prefix
-character displays a list of the commands starting with that prefix.
-There are a few prefix characters for which @kbd{C-h} does not
+key displays a list of the commands starting with that prefix.
+There are a few prefix keys for which @kbd{C-h} does not
work---for historical reasons, they have other meanings for @kbd{C-h}
which are not easy to change. But @key{F1} should work for all prefix
-characters.
-
+keys.
+
@node Commands, Text Characters, Keys, Top
@section Keys and Commands
@cindex binding
-@cindex function
@cindex command
@cindex function definition
This manual is full of passages that tell you what particular keys
after mentioning the key that runs it. For example, we will say that
``The command @kbd{C-n} (@code{next-line}) moves point vertically
down,'' meaning that @code{next-line} is a command that moves vertically
-down and @kbd{C-n} is a key that is standardly bound to it.
+down, and @kbd{C-n} is a key that is normally bound to it.
While we are on the subject of information for customization only,
it's a good time to tell you about @dfn{variables}. Often the
multibyte characters are enabled, you can use any of the non-ASCII
printing characters that Emacs supports. They have character codes
starting at 256, octal 0400, and each one is represented as a sequence
-of two or more bytes. @xref{International}. Single byte characters
-with codes 128 through 255 may also appear in multibyte buffers.
+of two or more bytes. @xref{International}. Single-byte characters
+with codes 128 through 255 can also appear in multibyte buffers.
If you disable multibyte characters, then you can use only one
alphabet of non-ASCII characters, but they all fit in one byte. They