繁体   English   中英

Emacs 文本卡在 minibuffer 中

[英]Emacs text gets stuck in minibuffer

我正在使用 GNU Emacs 24.4.1(编辑:也见于 24.5.1)。 来自 vc-mode 的一些旧输出(我认为)出现在 minibuffer 中:

Auto-merging foo/bar

我目前没有做任何版本控制操作,但是这个文本被卡在了小缓冲区中。 按 Cg 将它短暂地替换为 Quit,但它会在下一次击键时返回。

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

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

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

这不是屏幕大小问题(因为 Emacs 不知道终端窗口的正确大小,所以文本过时)因为我可以调整终端窗口的大小,并且 Emacs 可以正确调整大小......文本仍然显示在迷你缓冲区中。

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

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

我怎样才能让它消失?

如果您点击Cg来终止正在运行的 shell 命令,则可能会发生这种情况。 这将使小缓冲区窗口指向*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 的一部分发布。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM