|
|
@ -154,11 +154,13 @@ spelled-out keystrokes, e.g., \"C-c C-z\". See documentation of |
|
|
|
|
|
|
|
|
COMMAND must be an interactive function or lambda form. |
|
|
COMMAND must be an interactive function or lambda form. |
|
|
|
|
|
|
|
|
KEYMAP, if present, should be a keymap and not a quoted symbol. |
|
|
|
|
|
|
|
|
KEYMAP, if present, should be a keymap variable or symbol. |
|
|
For example: |
|
|
For example: |
|
|
|
|
|
|
|
|
(bind-key \"M-h\" #'some-interactive-function my-mode-map) |
|
|
(bind-key \"M-h\" #'some-interactive-function my-mode-map) |
|
|
|
|
|
|
|
|
|
|
|
(bind-key \"M-h\" #'some-interactive-function 'my-mode-map) |
|
|
|
|
|
|
|
|
If PREDICATE is non-nil, it is a form evaluated to determine when |
|
|
If PREDICATE is non-nil, it is a form evaluated to determine when |
|
|
a key should be bound. It must return non-nil in such cases. |
|
|
a key should be bound. It must return non-nil in such cases. |
|
|
Emacs can evaluate this form at any time that it does redisplay |
|
|
Emacs can evaluate this form at any time that it does redisplay |
|
|
@ -171,10 +173,11 @@ can safely be called at any time." |
|
|
`(let* ((,namevar ,key-name) |
|
|
`(let* ((,namevar ,key-name) |
|
|
(,keyvar (if (vectorp ,namevar) ,namevar |
|
|
(,keyvar (if (vectorp ,namevar) ,namevar |
|
|
(read-kbd-macro ,namevar))) |
|
|
(read-kbd-macro ,namevar))) |
|
|
|
|
|
(kmap (if (and ,keymap (symbolp ,keymap)) (symbol-value ,keymap) ,keymap)) |
|
|
(,kdescvar (cons (if (stringp ,namevar) ,namevar |
|
|
(,kdescvar (cons (if (stringp ,namevar) ,namevar |
|
|
(key-description ,namevar)) |
|
|
(key-description ,namevar)) |
|
|
(quote ,keymap))) |
|
|
|
|
|
(,bindingvar (lookup-key (or ,keymap global-map) ,keyvar))) |
|
|
|
|
|
|
|
|
(if (symbolp ,keymap) ,keymap (quote ,keymap)))) |
|
|
|
|
|
(,bindingvar (lookup-key (or kmap global-map) ,keyvar))) |
|
|
(let ((entry (assoc ,kdescvar personal-keybindings)) |
|
|
(let ((entry (assoc ,kdescvar personal-keybindings)) |
|
|
(details (list ,command |
|
|
(details (list ,command |
|
|
(unless (numberp ,bindingvar) |
|
|
(unless (numberp ,bindingvar) |
|
|
@ -183,11 +186,11 @@ can safely be called at any time." |
|
|
(setcdr entry details) |
|
|
(setcdr entry details) |
|
|
(add-to-list 'personal-keybindings (cons ,kdescvar details)))) |
|
|
(add-to-list 'personal-keybindings (cons ,kdescvar details)))) |
|
|
,(if predicate |
|
|
,(if predicate |
|
|
`(define-key (or ,keymap global-map) ,keyvar |
|
|
|
|
|
|
|
|
`(define-key (or kmap global-map) ,keyvar |
|
|
'(menu-item "" nil :filter (lambda (&optional _) |
|
|
'(menu-item "" nil :filter (lambda (&optional _) |
|
|
(when ,predicate |
|
|
(when ,predicate |
|
|
,command)))) |
|
|
,command)))) |
|
|
`(define-key (or ,keymap global-map) ,keyvar ,command))))) |
|
|
|
|
|
|
|
|
`(define-key (or kmap global-map) ,keyvar ,command))))) |
|
|
|
|
|
|
|
|
;;;###autoload |
|
|
;;;###autoload |
|
|
(defmacro unbind-key (key-name &optional keymap) |
|
|
(defmacro unbind-key (key-name &optional keymap) |
|
|
|