我正在使用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/MiniBuffer的switch-to-minibuffer
命令,但这会产生错误Minibuffer is not active
。然而,这个尴尬的文字仍然出现。
这不是屏幕尺寸问题(因为Emacs不知道终端窗口的正确大小,因为我已经可以调整终端窗口的大小),因为我可以正确调整终端窗口的大小... ...文本仍然显示在迷你消息。
有时我在迷你缓冲区中看到了两行或多行文本的效果。事实上,我当前的Emacs会话在一个客户端会话(emacsclient -nw
)中有一个屏幕,主会话只显示一行。客户端会话在迷你缓冲区中显示几行版本控制gunk:
Auto-merging foo/bar
CONFLICT (content): Merge conflict in foo/bar
如何让它消失?
答案 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的一部分发布。