diff --git a/Cask b/Cask index b6a1fa3f9..6b1f08fcd 100644 --- a/Cask +++ b/Cask @@ -49,6 +49,7 @@ (depends-on "evil-surround") (depends-on "evil-visualstar") (depends-on "evil-plugins" :git "https://github.com/tarao/evil-plugins") +(depends-on "evil-escape") ;; Editor --- core/core-editor.el (depends-on "ace-window") diff --git a/core/core-defuns.el b/core/core-defuns.el index 5125b1ea5..a5569059f 100644 --- a/core/core-defuns.el +++ b/core/core-defuns.el @@ -236,33 +236,5 @@ to abort the minibuffer." (f-directories narf-packages-dir) narf--load-path))) -(after! evil - (evil-define-command narf:exit-mode-maybe () - "Exits insert/replace mode using jk without the momentary pause caused by -key-chord-define." - :repeat nil - (interactive) - (let ((modified (buffer-modified-p)) - (buffer-undo-list t)) - (call-interactively 'self-insert-command) - (let ((evt (read-event nil nil 0.4))) - (cond - ((null evt) (message "")) - ((and (integerp evt) (or (char-equal evt ?k) - (char-equal evt ?K))) - - (if (evil-replace-state-p) - (evil-replace-backspace) - (delete-char -1)) - (set-buffer-modified-p modified) - (when (and (bound-and-true-p electric-indent-mode) - narf-electric-indent-words - (eolp) - (looking-back (concat "\\<" (regexp-opt narf-electric-indent-words) "\\>"))) - (indent-according-to-mode)) - (push 'escape unread-command-events)) - (t - (setq unread-command-events (append unread-command-events (list evt))))))))) - (provide 'core-defuns) ;;; core-defuns.el ends here diff --git a/core/core-evil.el b/core/core-evil.el index 5859f5573..6a33a22f3 100644 --- a/core/core-evil.el +++ b/core/core-evil.el @@ -400,5 +400,10 @@ :config (global-evil-visualstar-mode 1)) +(use-package evil-escape + :config + (setq evil-escape-key-sequence "jk") + (evil-escape-mode +1)) + (provide 'core-evil) ;;; core-evil.el ends here diff --git a/private/my-bindings.el b/private/my-bindings.el index 1c56528ed..1d4095178 100644 --- a/private/my-bindings.el +++ b/private/my-bindings.el @@ -258,8 +258,6 @@ :i "" 'evil-ret-and-indent ;; escape from insert mode (more responsive than using key-chord-define) - :ir "j" 'narf:exit-mode-maybe - :ir "J" 'narf:exit-mode-maybe :irv "C-g" 'evil-normal-state :o "s" 'evil-surround-edit