A keymap is a list whose CAR is the symbol keymap
. The
remaining elements of the list define the key bindings of the keymap.
Use the function keymapp
(see below) to test whether an object is
a keymap.
Several kinds of elements may appear in a keymap, after the symbol
keymap
that begins it:
(type . binding)
(t . binding)
vector
nil
for that
character. Such a binding of nil
overrides any default key
binding in the keymap, for ASCII characters. However, default
bindings are still meaningful for events other than ASCII
characters. A binding of nil
does not override
lower-precedence keymaps; thus, if the local map gives a binding of
nil
, Emacs uses the binding from the global map.
string
Keymaps do not directly record bindings for the meta characters.
Instead, meta characters are regarded for
purposes of key lookup as sequences of two characters, the first of
which is ESC (or whatever is currently the value of
meta-prefix-char
). Thus, the key M-a is really represented
as ESC a, and its global binding is found at the slot for
a in esc-map
(see section Prefix Keys).
Here as an example is the local keymap for Lisp mode, a sparse keymap. It defines bindings for DEL and TAB, plus C-c C-l, M-C-q, and M-C-x.
lisp-mode-map => (keymap ;; TAB (9 . lisp-indent-line) ;; DEL (127 . backward-delete-char-untabify) (3 keymap ;; C-c C-l (12 . run-lisp)) (27 keymap ;; M-C-q, treated as ESC C-q (17 . indent-sexp) ;; M-C-x, treated as ESC C-x (24 . lisp-send-defun)))
t
if object is a keymap, nil
otherwise. More precisely, this function tests for a list whose
CAR is keymap
.
(keymapp '(keymap)) => t (keymapp (current-global-map)) => t
Go to the first, previous, next, last section, table of contents.