Add evil-escape

This commit is contained in:
Henrik Lissner 2016-04-04 12:06:34 -04:00
parent beb3ba6149
commit 0383f3edd8
4 changed files with 6 additions and 30 deletions

1
Cask
View file

@ -49,6 +49,7 @@
(depends-on "evil-surround") (depends-on "evil-surround")
(depends-on "evil-visualstar") (depends-on "evil-visualstar")
(depends-on "evil-plugins" :git "https://github.com/tarao/evil-plugins") (depends-on "evil-plugins" :git "https://github.com/tarao/evil-plugins")
(depends-on "evil-escape")
;; Editor --- core/core-editor.el ;; Editor --- core/core-editor.el
(depends-on "ace-window") (depends-on "ace-window")

View file

@ -236,33 +236,5 @@ to abort the minibuffer."
(f-directories narf-packages-dir) (f-directories narf-packages-dir)
narf--load-path))) 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) (provide 'core-defuns)
;;; core-defuns.el ends here ;;; core-defuns.el ends here

View file

@ -400,5 +400,10 @@
:config :config
(global-evil-visualstar-mode 1)) (global-evil-visualstar-mode 1))
(use-package evil-escape
:config
(setq evil-escape-key-sequence "jk")
(evil-escape-mode +1))
(provide 'core-evil) (provide 'core-evil)
;;; core-evil.el ends here ;;; core-evil.el ends here

View file

@ -258,8 +258,6 @@
:i "<C-return>" 'evil-ret-and-indent :i "<C-return>" 'evil-ret-and-indent
;; escape from insert mode (more responsive than using key-chord-define) ;; 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 :irv "C-g" 'evil-normal-state
:o "s" 'evil-surround-edit :o "s" 'evil-surround-edit