mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-05 11:49:37 +00:00
Merge pull request from npostavs/bind-vector
let bind-key accept vectors, add docstring GitHub-reference: https://github.com/jwiegley/use-package/issues/92
This commit is contained in:
commit
11195fa213
1 changed files with 8 additions and 1 deletions
|
@ -122,12 +122,19 @@
|
||||||
(defvar personal-keybindings nil)
|
(defvar personal-keybindings nil)
|
||||||
|
|
||||||
(defmacro bind-key (key-name command &optional keymap)
|
(defmacro bind-key (key-name command &optional keymap)
|
||||||
|
"Bind KEY-NAME to COMMAND in KEYMAP (`global-map' if not passed).
|
||||||
|
|
||||||
|
KEY-NAME may be a vector, in which case it passed straight to
|
||||||
|
`define-key'. Or it may be a string to be interpreted as
|
||||||
|
spelled-out keystrokes, e.g., \"C-c C-z\". See documentation of
|
||||||
|
`edmacro-mode' for details."
|
||||||
(let ((namevar (make-symbol "name"))
|
(let ((namevar (make-symbol "name"))
|
||||||
(keyvar (make-symbol "key"))
|
(keyvar (make-symbol "key"))
|
||||||
(bindingvar (make-symbol "binding"))
|
(bindingvar (make-symbol "binding"))
|
||||||
(entryvar (make-symbol "entry")))
|
(entryvar (make-symbol "entry")))
|
||||||
`(let* ((,namevar ,(eval key-name))
|
`(let* ((,namevar ,(eval key-name))
|
||||||
(,keyvar (read-kbd-macro ,namevar))
|
(,keyvar (if (vectorp ,namevar) ,namevar
|
||||||
|
(read-kbd-macro ,namevar)))
|
||||||
(,bindingvar (lookup-key (or ,keymap global-map)
|
(,bindingvar (lookup-key (or ,keymap global-map)
|
||||||
,keyvar)))
|
,keyvar)))
|
||||||
(let ((,entryvar (assoc (cons ,namevar (quote ,keymap))
|
(let ((,entryvar (assoc (cons ,namevar (quote ,keymap))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue