Update
This commit is contained in:
@@ -82,14 +82,12 @@
|
||||
'("z" . meow-pop-selection)
|
||||
'("'" . repeat)
|
||||
'("<escape>" . ignore))
|
||||
;; (meow-define-keys
|
||||
;; 'beacon
|
||||
;; '("C-g" . meow-grab))
|
||||
;; (meow-define-keys
|
||||
;; 'insert
|
||||
;; '("ESC" . <escape>))
|
||||
(meow-define-keys
|
||||
'beacon
|
||||
'("C-g" . meow-grab))
|
||||
)
|
||||
|
||||
|
||||
(use-package meow
|
||||
:demand t
|
||||
:hook (elpaca-after-init . meow-global-mode)
|
||||
@@ -100,6 +98,8 @@
|
||||
(add-to-list 'meow-mode-state-list '(eshell-mode . insert))
|
||||
(add-to-list 'meow-mode-state-list '(git-commit-elisp-text-mode . insert))
|
||||
|
||||
(define-key input-decode-map (kbd "C-[") [control-bracketleft])
|
||||
(define-key meow-insert-state-keymap [control-bracketleft] 'meow-insert-exit)
|
||||
(setq meow-keypad-leader-dispatch "C-c"
|
||||
meow-use-clipboard t)
|
||||
(setq meow-replace-state-name-list
|
||||
@@ -110,4 +110,40 @@
|
||||
(beacon . "<B>")))
|
||||
(setq meow-cursor-type-normal 'bar))
|
||||
|
||||
;; Meow jk exit
|
||||
(use-package meow
|
||||
:disabled t
|
||||
:after meow
|
||||
:config
|
||||
;; Use jk to escape from insert state to normal state
|
||||
(defvar meow-two-char-escape-sequence "jk")
|
||||
(defvar meow-two-char-escape-delay 0.5)
|
||||
(defun meow--two-char-exit-insert-state (s)
|
||||
"Exit meow insert state when pressing consecutive two keys.
|
||||
|
||||
S is string of the two-key sequence."
|
||||
(when (meow-insert-mode-p)
|
||||
(let ((modified (buffer-modified-p))
|
||||
(undo-list buffer-undo-list))
|
||||
(insert (elt s 0))
|
||||
(let* ((second-char (elt s 1))
|
||||
(event
|
||||
(if defining-kbd-macro
|
||||
(read-event nil nil)
|
||||
(read-event nil nil meow-two-char-escape-delay))))
|
||||
(when event
|
||||
(if (and (characterp event) (= event second-char))
|
||||
(progn
|
||||
(backward-delete-char 1)
|
||||
(set-buffer-modified-p modified)
|
||||
(setq buffer-undo-list undo-list)
|
||||
(meow-insert-exit))
|
||||
(push event unread-command-events)))))))
|
||||
(defun meow-two-char-exit-insert-state ()
|
||||
"Exit meow insert state when pressing consecutive two keys."
|
||||
(interactive)
|
||||
(meow--two-char-exit-insert-state meow-two-char-escape-sequence))
|
||||
(define-key meow-insert-state-keymap (substring meow-two-char-escape-sequence 0 1)
|
||||
#'meow-two-char-exit-insert-state))
|
||||
|
||||
(provide 'init-meow)
|
||||
|
||||
Reference in New Issue
Block a user