A prefix key has an associated keymap that defines what to do
with key sequences that start with the prefix key. For example,
C-x is a prefix key, and it uses a keymap that is also stored in
ctl-x-map. Here is a list of the standard prefix
keys of SXEmacs and their keymaps:
help-mapis used for events that follow C-h.
mode-specific-mapis for events that follow C-c. This map is not actually mode specific; its name was chosen to be informative for the user in C-h b (
display-bindings), where it describes the main use of the C-c prefix key.
ctl-x-mapis the map used for events that follow C-x. This map is also the function definition of
ctl-x-4-mapis used for events that follow C-x 4.
ctl-x-5-mapis used for events that follow C-x 5.
esc-mapis an evil hack that is present for compatibility purposes with Emacs 18. Defining a key in
esc-mapis equivalent to defining the same key in
global-mapbut with the META prefix added. You should not use this in your code. (This map is also the function definition of
The binding of a prefix key is the keymap to use for looking up the
events that follow 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
Control-X-prefix, whose function definition is the
keymap for C-x commands. (The same keymap is also the value of
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 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
like C-x C-f. The key sequence C-p 6 is not found in any
(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 defines symbol as a prefix command: it creates a
keymap and stores it as symbol’s function definition.
Storing the symbol as the binding of a key makes the key a prefix key
that has a name. If optional argument mapvar is not specified,
it also sets symbol as a variable, to have the keymap as its
value. (If mapvar is given and is not
t, its value is
stored as the value of symbol.) The function returns symbol.
In Emacs version 18, only the function definition of symbol was set, not the value as a variable.