From 66c22b061d6d59cc128ddea427dea266c98385aa Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Wed, 1 Feb 2023 08:47:28 -0500 Subject: Add repeat keymap --- emacs/.config/emacs-kj/init.el | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/emacs/.config/emacs-kj/init.el b/emacs/.config/emacs-kj/init.el index e1474f8..12d8e45 100644 --- a/emacs/.config/emacs-kj/init.el +++ b/emacs/.config/emacs-kj/init.el @@ -719,9 +719,33 @@ ;; ("SPC" "Quit" transient-quit-all)] ;; ) +(defvar kj/leader-repeat-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "@") 'er/expand-region) + (define-key map (kbd "!") (defun kj/contract-region () + (er/expand-region -1))) + map) + "kj/leader-map keymap.") + +(defun repeatize (keymap) + "Add `repeat-mode' support to a KEYMAP." + (map-keymap + (lambda (_key cmd) + (when (symbolp cmd) + (put cmd 'repeat-map keymap))) + (symbol-value keymap))) +(repeatize 'kj/leader-repeat-map) + +(defvar kj/leader-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "b") 'consult-buffer) + (set-keymap-parent map kj/leader-repeat-map) + map) + "kj/leader-map keymap.") + (defvar kj/keys-minor-mode-map (let ((map (make-sparse-keymap))) - (define-key map (kbd "C-t") 'kj/transient) + (define-key map (kbd "C-t") kj/leader-map) map) "kj/keys-minor-mode keymap.") -- cgit v1.2.3