A prefix key is a key sequence whose binding is a keymap. The
keymap defines what to do with key sequences that extend the prefix key.
For example, C-x is a prefix key, and it uses a keymap that is
also stored in the variable ctl-x-map
. This keymap defines
bindings for key sequences starting with C-x.
Some of the standard Emacs prefix keys use keymaps that are also found in Lisp variables:
esc-map
is the global keymap for the ESC prefix key. Thus,
the global definitions of all meta characters are actually found here.
This map is also the function definition of ESC-prefix
.
help-map
is the global keymap for the C-h prefix key.
mode-specific-map
is the global keymap for the prefix key
C-c. This map is actually global, not mode-specific, but its name
provides useful information about C-c in the output of C-h b
(display-bindings
), since the main use of this prefix key is for
mode-specific bindings.
ctl-x-map
is the global keymap used for the C-x prefix key.
This map is found via the function cell of the symbol
Control-X-prefix
.
mule-keymap
is the global keymap used for the C-x RET
prefix key.
ctl-x-4-map
is the global keymap used for the C-x 4 prefix
key.
ctl-x-5-map
is the global keymap used for the C-x 5 prefix
key.
2C-mode-map
is the global keymap used for the C-x 6 prefix
key.
vc-prefix-map
is the global keymap used for the C-x v prefix
key.
facemenu-keymap
is the global keymap used for the M-g
prefix key.
The keymap binding of a prefix key is used for looking up the event
that follows the prefix key. (It may instead be a symbol whose function
definition is a keymap. The effect is the same, but the symbol serves
as a name for the prefix key.) Thus, the binding of C-x is the
symbol Control-X-prefix
, whose function cell holds the keymap
for C-x commands. (The same keymap is also the value of
ctl-x-map
.)
Prefix key definitions can appear in any active keymap. The definitions of C-c, C-x, C-h and ESC as prefix keys appear in the global map, so these prefix keys are always available. Major and minor modes can redefine a key as a prefix by putting a prefix key definition for it in the local map or the minor mode's map. See section Active Keymaps.
If a key is defined as a prefix in more than one active map, then its various definitions are in effect merged: the commands defined in the minor mode keymaps come first, followed by those in the local map's prefix definition, and then by those from the global map.
In the following example, we make C-p a prefix key in the local
keymap, in such a way that C-p is identical to C-x. Then
the binding for C-p C-f is the function find-file
, just
like C-x C-f. The key sequence C-p 6 is not found in any
active keymap.
(use-local-map (make-sparse-keymap)) => nil (local-set-key "\C-p" ctl-x-map) => nil (key-binding "\C-p\C-f") => find-file (key-binding "\C-p6") => nil
This function also sets symbol as a variable, with the keymap as its value. It returns symbol.
Go to the first, previous, next, last section, table of contents.