diff --git a/modules/editor/evil/config.el b/modules/editor/evil/config.el index 3528964fd..3dfb39fd3 100644 --- a/modules/editor/evil/config.el +++ b/modules/editor/evil/config.el @@ -144,6 +144,15 @@ directives. By default, this only recognizes C directives.") (when (eq major-mode 'fundamental-mode) (hack-local-variables))) + ;; HACK Invoking helpful from evil-ex throws a "No recursive edit is in + ;; progress" error because, between evil-ex and helpful, + ;; `abort-recursive-edit' gets called one time too many. + (defadvice! +evil--fix-helpful-key-in-evil-ex-a (key-sequence) + :before #'helpful-key + (when (evil-ex-p) + (run-at-time 0.1 nil #'helpful-key key-sequence) + (abort-recursive-edit))) + ;; Make ESC (from normal mode) the universal escaper. See `doom-escape-hook'. (advice-add #'evil-force-normal-state :after #'+evil-escape-a)