summaryrefslogtreecommitdiff
path: root/emacs
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2023-02-01 08:47:28 -0500
committerKjetil Orbekk <kj@orbekk.com>2023-02-01 08:47:28 -0500
commit66c22b061d6d59cc128ddea427dea266c98385aa (patch)
tree755dd484ea8e37ce2e8beeb1c939ff04fcd5504e /emacs
parentd12e928f8b19a8a1576e3d5ff4f5845400748bb2 (diff)
Add repeat keymap
Diffstat (limited to 'emacs')
-rw-r--r--emacs/.config/emacs-kj/init.el26
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.")