退出迷你缓冲区时,Emacs Evil不会切换到正常模式

时间:2013-07-29 03:15:13

标签: emacs evil-mode minibuffer

我是一个邪恶的Emacs用户。但是,当我发现它们比普通的Emacs命令更方便时,我真的只使用普通模式进行花哨的Vim样式编辑。 (主要是花哨的批量编辑/ yanking /删除)。但是,我也是迷你缓冲区的巨大用户(我用ido和flx做了很多M-x,所以我可以避免记住更多深奥的命令)。当我这样做时,邪恶在我退出后自动切换到正常模式。我发现这非常烦人/令人困惑。我怎么能让它停下来? (最好以优雅,非hackish的方式)。

谢谢, PythonNut

编辑:

似乎在所有窗口和所有帧中都会切换到正常模式。

2 个答案:

答案 0 :(得分:1)

您可以通过将用于激活它的任何功能添加到minibuffer-exit-hook来重新激活邪恶模式。

答案 1 :(得分:1)

我无法重现你的问题;也许知道你的版本可以帮助任何人识别你的问题。你能用“emacs -q”重现你的问题(再加上加载路径的邪恶)?

这是一种识别调用evil-normal-state的邪恶(传统英语含义)代码片段的方法,如果有的话:

(defadvice evil-normal-state (before debug-issue activate)
  (setq debug-on-error t)
  (inexisting-function-will-fail))

在你希望它处于邪恶状态的缓冲区之后立即评估它,然后转到带有M-x的迷你缓冲区。有堆栈跟踪吗?