如何防止迷你缓冲区在Emacs中显示以前的命令?

Viv*_*ivi 8 emacs minibuffer

我甚至不确定这是一个以前的命令或一个未完成的命令或其他什么,但我知道我真的不喜欢它.

我的问题是一些命令(或消息,或其他)被卡在迷你缓冲区中,因此当我键入一个新命令时,它会很快出现,然后迷你缓冲区又回到了顽固的命令.似乎选择了一些命令,并且在使用大量命令后,其他东西会被卡在那里,但是总会有一些东西显示出我不想看到的东西.我尝试多次输入Cg以查看它是否会退出,但这不起作用.

这是我现在拥有的图片:

替代文字

我做什么都没关系,那一点

标签:hl-line

不会离开.键入新命令时它会暂时离开,但它会返回.我不喜欢它,它令人困惑,我更愿意看到最后使用过的命令.

我确实检查了迷你缓冲区的自定义选项(它的底部部分可以在我的图片中看到),但我发现似乎没有什么是我想要的.

有任何想法吗?

Tre*_*son 15

您可能会遇到这种情况,因为您启动了一个命令并使用鼠标在不同的窗口中选择了某些内容.如果是这种情况,您可以让Emacs在执行此类操作时自动中止命令.

这是您要添加到.emacs的代码:

(defun stop-using-minibuffer ()
  "kill the minibuffer"
  (when (and (>= (recursion-depth) 1) (active-minibuffer-window))
    (abort-recursive-edit)))

(add-hook 'mouse-leave-buffer-hook 'stop-using-minibuffer)
Run Code Online (Sandbox Code Playgroud)

注意:我从关于该主题的博客文章中抓取了这个.

并且还有一个超级用户问题可以解决这个问题,我的答案提供了一个跳回迷你缓冲区的命令.


Vij*_*hew 10

迷你缓冲区失去了焦点.尝试使用Cx o(Control + xo)重新获得焦点.要取消命令,请在迷你缓冲区中对焦时按Cg .