dotfiles

🎜 Clone'em, tweak'em, stick'em in your $HOME 🎝
git clone https://git.kevinlegouguec.net/dotfiles
Log | Files | Refs | README

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)