diff --git a/core/core-defuns.el b/core/core-defuns.el index 9f5a9c057..3bed7d07a 100644 --- a/core/core-defuns.el +++ b/core/core-defuns.el @@ -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