commit 4f27c30d9b736d7d9be80d5d74092c6d3fcb5bc1
parent 998ed49ccad7ecab877e37beda650fbc159ac83b
Author: KΓ©vin Le Gouguec <kevin.legouguec@gmail.com>
Date: Fri, 18 Sep 2020 13:22:52 +0200
Start defining proper prefix commands
This allows
- which-key to display a helpful symbol instead of "+prefix",
- C-h b to cross-link to the keymap's docstring.
Diffstat:
| M | .emacs | | | 25 | +++++++++++++++++++++---- |
1 file changed, 21 insertions(+), 4 deletions(-)
diff --git a/.emacs b/.emacs
@@ -127,14 +127,31 @@
(require 'project)
(magit-status (project-prompt-project-dir)))
+(defmacro my/define-prefix-command (name doc bindings)
+ (declare (indent defun))
+ `(defvar ,name
+ (let ((map (define-prefix-command ',name)))
+ (pcase-dolist (`(,key . ,fun) ,bindings)
+ (define-key map key fun))
+ map)
+ ,doc))
+
+(my/define-prefix-command my/display-map
+ "Keymap for display-related commands."
+ '(("t" . toggle-truncate-lines)
+ ("v" . visual-line-mode)))
+
+(my/define-prefix-command my/input-map
+ "Keymap for input methods shortcuts."
+ `(("t" . ,(my/make-input-toggle TeX))
+ ("u" . ,(my/make-input-toggle my/symbols))))
+
;; C-c [[:alpha:]] is reserved for users - let's make good use of it.
(global-set-key (kbd "C-c c") 'compile)
-(global-set-key (kbd "C-c d t") 'toggle-truncate-lines)
-(global-set-key (kbd "C-c d v") 'visual-line-mode)
+(global-set-key (kbd "C-c d") 'my/display-map)
(global-set-key (kbd "C-c e f") 'auto-fill-mode)
-(global-set-key (kbd "C-c i t") (my/make-input-toggle TeX))
-(global-set-key (kbd "C-c i u") (my/make-input-toggle my/symbols))
+(global-set-key (kbd "C-c i") 'my/input-map)
(global-set-key (kbd "C-c k f") 'my/kill-ring-filename)
(global-set-key (kbd "C-c k |") 'my/kill-ring-pipe-region)
(global-set-key (kbd "C-c k !") 'my/kill-ring-shell)