如何防止 `magit-visit-thing` 打开 `evil-mode` 缓冲区

How to prevent `magit-visit-thing` to open an `evil-mode` buffer

evil-modeevil-emacs-state-modes var,它定义了在 emacs 模式下打开的模式。

我在那个 var 中列出了 magit-diff-mode(事实上,它是默认值)。

运行 magit-diffemacs 模式下正确打开。

但是,如果我 运行 magit-status(在 emacs mode 中打开),请将点放在 Head(缓冲区的第一行)上并点击 Ret, magit-visit-thing 被调用并且提交信息显示在新缓冲区中。此缓冲区在 magit-diff-mode 中,但是 evil-mode 对于此缓冲区处于活动状态。

如何防止这种行为?

正如我们在评论中发现的那样 - 缓冲区在 magit-revision-mode 中打开,而不是在 magit-diff-mode.

中打开

要找出缓冲区的主要模式,请描述变量 major-mode - C-h v major-mode <RET>.

请注意,当您执行 describe-mode 而不是 (C-h m) 时,您看到的模式名称是出现在状态行中的字符串。可能很难从中猜出实际的模式名称是什么 - 比如 Magit Rev 实际上是 magit-revision-mode 的字符串 - 除非你查看 magit-diff.el:[=20= 否则无法知道]

define-derived-mode magit-revision-mode magit-diff-mode "Magit Rev"