Emacs文本卡在迷你缓冲区中

时间:2015-06-24 09:36:45

标签: emacs minibuffer

我正在使用GNU Emacs 24.4.1(编辑:也见于24.5.1)。 vc-mode的一些旧输出(我认为)出现在迷你缓冲区中:

Auto-merging foo/bar

我目前没有进行任何版本控制操作,但此文本卡在迷你缓冲区中。按下C-g会短暂地将其替换为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会话在一个客户端会话(emacsclient -nw)中有一个屏幕,主会话只显示一行。客户端会话在迷你缓冲区中显示几行版本控制gunk:

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

如何让它消失?

1 个答案:

答案 0 :(得分:1)

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

bug #25209中所述,您可以通过在暂存缓冲区中调用(minibuffer-window)来检查是否已发生:

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

并使用以下方法进行修复:

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

此问题已在this commit中进行了修复,该修复程序作为Emacs 26.1的一部分发布。