narf:exit-mode-maybe (jk): don't affect undo history

This commit is contained in:
Henrik Lissner 2015-12-10 16:10:51 -05:00
parent 9845101db9
commit 7c37162d9b

View file

@ -246,22 +246,23 @@ to abort the minibuffer."
(evil-define-command narf:exit-mode-maybe ()
"Exits insert/replace mode using jk without the momentary pause caused by
key-chord-define."
:repeat change
(interactive)
(let ((modified (buffer-modified-p)))
(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)
(push 'escape unread-command-events))
(t
(setq unread-command-events (append unread-command-events (list evt)))))))))
: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)
(push 'escape unread-command-events))
(t
(setq unread-command-events (append unread-command-events (list evt)))))))))
(provide 'core-defuns)
;;; core-defuns.el ends here