mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 06:20:55 -08:00
; Improve documentation of key-binding commands
* doc/lispref/keymaps.texi (Key Binding Commands): Improve the documentation of arguments expected by key binding commands. * lisp/keymap.el (keymap-set, keymap-global-set) (keymap-local-set, keymap-global-unset, keymap-local-unset) (keymap-unset, key-parse): Doc fixes.
This commit is contained in:
parent
c3fefb2b3a
commit
a30ebe7a55
2 changed files with 48 additions and 21 deletions
|
|
@ -2070,7 +2070,16 @@ problematic suffixes/prefixes are @kbd{@key{ESC}}, @kbd{M-O} (which is really
|
||||||
@section Commands for Binding Keys
|
@section Commands for Binding Keys
|
||||||
|
|
||||||
This section describes some convenient interactive interfaces for
|
This section describes some convenient interactive interfaces for
|
||||||
changing key bindings. They work by calling @code{keymap-set}.
|
changing key bindings. They work by calling @code{keymap-set}
|
||||||
|
(@pxref{Changing key Bindings}). In interactive use, these commands
|
||||||
|
prompt for the argument @var{key} and expect the user to type a valid
|
||||||
|
key sequence; they also prompt for the @var{binding} of the key
|
||||||
|
sequence, and expect the name of a command (i.e., a symbol that
|
||||||
|
satisfies @code{commandp}, @pxref{Interactive Call}). When called
|
||||||
|
from Lisp, these commands expect @var{key} to be a string that
|
||||||
|
satisfies @code{key-valid-p} (@pxref{Key Sequences}), and
|
||||||
|
@var{binding} to be any Lisp object that is meaningful in a keymap
|
||||||
|
(@pxref{Key Lookup}).
|
||||||
|
|
||||||
People often use @code{keymap-global-set} in their init files
|
People often use @code{keymap-global-set} in their init files
|
||||||
(@pxref{Init File}) for simple customization. For example,
|
(@pxref{Init File}) for simple customization. For example,
|
||||||
|
|
|
||||||
|
|
@ -40,11 +40,12 @@
|
||||||
(defun keymap-set (keymap key definition)
|
(defun keymap-set (keymap key definition)
|
||||||
"Set KEY to DEFINITION in KEYMAP.
|
"Set KEY to DEFINITION in KEYMAP.
|
||||||
KEY is a string that satisfies `key-valid-p'.
|
KEY is a string that satisfies `key-valid-p'.
|
||||||
|
If DEFINITION is a string, it must also satisfy `key-valid-p'.
|
||||||
|
|
||||||
DEFINITION is anything that can be a key's definition:
|
DEFINITION is anything that can be a key's definition:
|
||||||
nil (means key is undefined in this keymap),
|
nil (means key is undefined in this keymap),
|
||||||
a command (a Lisp function suitable for interactive calling),
|
a command (a Lisp function suitable for interactive calling),
|
||||||
a string (treated as a keyboard macro),
|
a string (treated as a keyboard macro or a sequence of input events),
|
||||||
a keymap (to define a prefix key),
|
a keymap (to define a prefix key),
|
||||||
a symbol (when the key is looked up, the symbol will stand for its
|
a symbol (when the key is looked up, the symbol will stand for its
|
||||||
function definition, which should at that time be one of the above,
|
function definition, which should at that time be one of the above,
|
||||||
|
|
@ -67,10 +68,17 @@ DEFINITION is anything that can be a key's definition:
|
||||||
|
|
||||||
(defun keymap-global-set (key command &optional interactive)
|
(defun keymap-global-set (key command &optional interactive)
|
||||||
"Give KEY a global binding as COMMAND.
|
"Give KEY a global binding as COMMAND.
|
||||||
COMMAND is the command definition to use; usually it is
|
When called interactively, KEY is a key sequence. When called from
|
||||||
a symbol naming an interactively-callable function.
|
Lisp, KEY is a string that must satisfy `key-valid-p'.
|
||||||
|
|
||||||
KEY is a string that satisfies `key-valid-p'.
|
COMMAND is the command definition to use. When called interactively,
|
||||||
|
this function prompts for COMMAND and accepts only names of known
|
||||||
|
commands, i.e., symbols that satisfy the `commandp' predicate. When
|
||||||
|
called from Lisp, COMMAND can be anything that `keymap-set' accepts
|
||||||
|
as its DEFINITION argument.
|
||||||
|
|
||||||
|
If COMMAND is a string (which can only happen when this function is
|
||||||
|
callled from Lisp), it must satisfy `key-valid-p'.
|
||||||
|
|
||||||
Note that if KEY has a local binding in the current buffer,
|
Note that if KEY has a local binding in the current buffer,
|
||||||
that local binding will continue to shadow any global binding
|
that local binding will continue to shadow any global binding
|
||||||
|
|
@ -84,12 +92,19 @@ that you make with this function."
|
||||||
|
|
||||||
(defun keymap-local-set (key command &optional interactive)
|
(defun keymap-local-set (key command &optional interactive)
|
||||||
"Give KEY a local binding as COMMAND.
|
"Give KEY a local binding as COMMAND.
|
||||||
COMMAND is the command definition to use; usually it is
|
When called interactively, KEY is a key sequence. When called from
|
||||||
a symbol naming an interactively-callable function.
|
Lisp, KEY is a string that must satisfy `key-valid-p'.
|
||||||
|
|
||||||
KEY is a string that satisfies `key-valid-p'.
|
COMMAND is the command definition to use. When called interactively,
|
||||||
|
this function prompts for COMMAND and accepts only names of known
|
||||||
|
commands, i.e., symbols that satisfy the `commandp' predicate. When
|
||||||
|
called from Lisp, COMMAND can be anything that `keymap-set' accepts
|
||||||
|
as its DEFINITION argument.
|
||||||
|
|
||||||
The binding goes in the current buffer's local map, which in most
|
If COMMAND is a string (which can only happen when this function is
|
||||||
|
callled from Lisp), it must satisfy `key-valid-p'.
|
||||||
|
|
||||||
|
The binding goes in the current buffer's local keymap, which in most
|
||||||
cases is shared with all other buffers in the same major mode."
|
cases is shared with all other buffers in the same major mode."
|
||||||
(declare (compiler-macro (lambda (form) (keymap--compile-check key) form))
|
(declare (compiler-macro (lambda (form) (keymap--compile-check key) form))
|
||||||
(advertised-calling-convention (key command) "29.1"))
|
(advertised-calling-convention (key command) "29.1"))
|
||||||
|
|
@ -103,10 +118,11 @@ cases is shared with all other buffers in the same major mode."
|
||||||
|
|
||||||
(defun keymap-global-unset (key &optional remove)
|
(defun keymap-global-unset (key &optional remove)
|
||||||
"Remove global binding of KEY (if any).
|
"Remove global binding of KEY (if any).
|
||||||
KEY is a string that satisfies `key-valid-p'.
|
When called interactively, KEY is a key sequence. When called from
|
||||||
|
Lisp, KEY is a string that satisfies `key-valid-p'.
|
||||||
|
|
||||||
If REMOVE (interactively, the prefix arg), remove the binding
|
If REMOVE is non-nil (interactively, the prefix arg), remove the
|
||||||
instead of unsetting it. See `keymap-unset' for details."
|
binding instead of unsetting it. See `keymap-unset' for details."
|
||||||
(declare (compiler-macro (lambda (form) (keymap--compile-check key) form)))
|
(declare (compiler-macro (lambda (form) (keymap--compile-check key) form)))
|
||||||
(interactive
|
(interactive
|
||||||
(list (key-description (read-key-sequence "Unset key globally: "))
|
(list (key-description (read-key-sequence "Unset key globally: "))
|
||||||
|
|
@ -115,10 +131,11 @@ instead of unsetting it. See `keymap-unset' for details."
|
||||||
|
|
||||||
(defun keymap-local-unset (key &optional remove)
|
(defun keymap-local-unset (key &optional remove)
|
||||||
"Remove local binding of KEY (if any).
|
"Remove local binding of KEY (if any).
|
||||||
KEY is a string that satisfies `key-valid-p'.
|
When called interactively, KEY is a key sequence. When called from
|
||||||
|
Lisp, KEY is a string that satisfies `key-valid-p'.
|
||||||
|
|
||||||
If REMOVE (interactively, the prefix arg), remove the binding
|
If REMOVE is non-nil (interactively, the prefix arg), remove the
|
||||||
instead of unsetting it. See `keymap-unset' for details."
|
binding instead of unsetting it. See `keymap-unset' for details."
|
||||||
(declare (compiler-macro (lambda (form) (keymap--compile-check key) form)))
|
(declare (compiler-macro (lambda (form) (keymap--compile-check key) form)))
|
||||||
(interactive
|
(interactive
|
||||||
(list (key-description (read-key-sequence "Unset key locally: "))
|
(list (key-description (read-key-sequence "Unset key locally: "))
|
||||||
|
|
@ -130,11 +147,11 @@ instead of unsetting it. See `keymap-unset' for details."
|
||||||
"Remove key sequence KEY from KEYMAP.
|
"Remove key sequence KEY from KEYMAP.
|
||||||
KEY is a string that satisfies `key-valid-p'.
|
KEY is a string that satisfies `key-valid-p'.
|
||||||
|
|
||||||
If REMOVE, remove the binding instead of unsetting it. This only
|
If REMOVE is non-nil, remove the binding instead of unsetting it.
|
||||||
makes a difference when there's a parent keymap. When unsetting
|
This only makes a difference when there's a parent keymap. When
|
||||||
a key in a child map, it will still shadow the same key in the
|
unsetting a key in a child map, it will still shadow the same key
|
||||||
parent keymap. Removing the binding will allow the key in the
|
in the parent keymap. Removing the binding will allow the key in
|
||||||
parent keymap to be used."
|
the parent keymap to be used."
|
||||||
(declare (compiler-macro (lambda (form) (keymap--compile-check key) form)))
|
(declare (compiler-macro (lambda (form) (keymap--compile-check key) form)))
|
||||||
(keymap--check key)
|
(keymap--check key)
|
||||||
(define-key keymap (key-parse key) nil remove))
|
(define-key keymap (key-parse key) nil remove))
|
||||||
|
|
@ -201,7 +218,8 @@ a menu, so this function is not useful for non-menu keymaps."
|
||||||
|
|
||||||
(defun key-parse (keys)
|
(defun key-parse (keys)
|
||||||
"Convert KEYS to the internal Emacs key representation.
|
"Convert KEYS to the internal Emacs key representation.
|
||||||
See `kbd' for a descripion of KEYS."
|
KEYS should be a string describing a key sequence in the format
|
||||||
|
returned by \\[describe-key] (`describe-key')."
|
||||||
(declare (pure t) (side-effect-free t))
|
(declare (pure t) (side-effect-free t))
|
||||||
;; A pure function is expected to preserve the match data.
|
;; A pure function is expected to preserve the match data.
|
||||||
(save-match-data
|
(save-match-data
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue