3

我正在使用 GNU Emacs 24.4.1(编辑:也可以在 24.5.1 中看到)。vc-mode 的一些旧输出(我认为)出现在 minibuffer 中:

Auto-merging foo/bar

我现在没有做任何版本控制操作,但是这个文本被卡在了 minibuffer 中。按 Cg 会用 Quit 短暂地替换它,但它会在下一次击键时返回。

它不是什么:它不是递归编辑。C-] 或abort-recursive-edit给出错误No recursive edit is in progress并且小缓冲区中的尴尬文本仍然存在。

它不是用鼠标选择的文本,因为我在没有鼠标支持的文本控制台(通过 ssh 的 GNU 屏幕会话)中运行。

我已经尝试了来自http://www.emacswiki.org/emacs/MiniBufferswitch-to-minibuffer的命令,但这给出了错误。然而,这种尴尬的文字仍然不断出现。Minibuffer is not active

这不是屏幕大小问题(文本陈旧,因为 Emacs 不知道终端窗口的正确大小),因为我可以调整终端窗口的大小,而 Emacs 可以正确调整大小……文本仍然显示在 minibuffer 中。

有时我会在 minibuffer 中看到两行或多行文本的这种效果。事实上,我当前的 Emacs 会话emacsclient -nw在一个屏幕中的一个客户端会话 ( ) 中具有该会话,而主会话仅显示一行。客户端会话在 minibuffer 中显示了几行版本控制 gunk:

Auto-merging foo/bar
CONFLICT (content): Merge conflict in foo/bar

我怎样才能让它消失?

4

1 回答 1

1

如果您点击C-g终止正在运行的 shell 命令,则可能会发生这种情况。这将使 minibuffer 窗口指向*Shell Command Output*缓冲区。

错误 #25209(minibuffer-window)中所述,您可以通过调用暂存缓冲区来检查是否发生了这种情况:

(minibuffer-window)
#<window 2 on *Shell Command Output*>

并修复它:

(set-window-buffer (minibuffer-window) (get-buffer " *Minibuf-0*"))

这已在此提交中修复,并且该修复已作为 Emacs 26.1 的一部分发布。

于 2019-11-08T12:26:16.170 回答