diff options
author | Kjetil Orbekk <kj@orbekk.com> | 2023-02-01 08:47:28 -0500 |
---|---|---|
committer | Kjetil Orbekk <kj@orbekk.com> | 2023-02-01 08:47:28 -0500 |
commit | 66c22b061d6d59cc128ddea427dea266c98385aa (patch) | |
tree | 755dd484ea8e37ce2e8beeb1c939ff04fcd5504e | |
parent | d12e928f8b19a8a1576e3d5ff4f5845400748bb2 (diff) |
Add repeat keymap
-rw-r--r-- | emacs/.config/emacs-kj/init.el | 26 |
1 files changed, 25 insertions, 1 deletions
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.") |