summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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.")