diff --git a/modules/editor/evil/config.el b/modules/editor/evil/config.el index 358e0cb1f..c9c27f272 100644 --- a/modules/editor/evil/config.el +++ b/modules/editor/evil/config.el @@ -280,8 +280,13 @@ directives. By default, this only recognizes C directives.") evil-escape-delay 0.15) (evil-define-key* '(insert replace visual operator) 'global "\C-g" #'evil-escape) :config - ;; no `evil-escape' in minibuffer - (add-hook 'evil-escape-inhibit-functions #'minibufferp) + ;; no `evil-escape' in minibuffer, unless `evil-collection-setup-minibuffer' + ;; is enabled, where we could be in insert mode in the minibuffer. + (add-hook! 'evil-escape-inhibit-functions + (defun +evil-inhibit-escape-in-minibuffer-fn () + (and (minibufferp) + (or (not (bound-and-true-p evil-collection-setup-minibuffer)) + (evil-normal-state-p))))) ;; so that evil-escape-mode-hook runs, and can be toggled by evil-mc (evil-escape-mode +1))