From 4f27c30d9b736d7d9be80d5d74092c6d3fcb5bc1 Mon Sep 17 00:00:00 2001 From: Kévin Le Gouguec Date: Fri, 18 Sep 2020 13:22:52 +0200 Subject: 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. --- .emacs | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to '.emacs') diff --git a/.emacs b/.emacs index 5190636..d25d2ef 100644 --- 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) -- cgit v1.2.3