【问题标题】:How can I prevent the mini-buffer from displaying previous commands in Emacs?如何防止迷你缓冲区在 Emacs 中显示以前的命令?
【发布时间】:2011-03-02 15:51:36
【问题描述】:

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

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

这是我现在拥有的照片:

我做什么都无所谓

标签:hl-line

不会离开。当输入新命令时,它确实会暂时离开,但它会返回。我不喜欢它,它很混乱,我更愿意看到最后使用的命令。

我确实检查了迷你缓冲区的自定义选项(可以在我的图片中看到它的底部),但我没有找到我想要的东西。

有什么想法吗?

【问题讨论】:

标签: emacs minibuffer


【解决方案1】:

您可能会遇到这种情况,因为您启动了一个命令并使用鼠标在不同的窗口中选择了某些内容。如果是这种情况,您可以让 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)

注意:我是从我的blog post on the topic 获取的。

还有一个超级用户问题解决了这个问题,我的回答提供了一个命令到jump back to the minibuffer

【讨论】:

  • 很可能我这样做了...虽然我正在尝试不使用鼠标,但希望我这个命令很快就会变得多余。当我也使用 ** C-x b ** 时会发生这种情况吗?顺便说一句,我更喜欢您在超级用户问题的答案中添加的代码,并在评论中链接到您的博客文章 :)(提供键绑定以转到活动的 minibuffer 窗口的代码)
  • @Vivi Ahhh... 正确的 SU 答案。我不太高兴 SO 和 SU 如何拆分 Emacs 问题。我也会在这个答案中链接那个。
  • 如果您启动命令并收到错误情况,可能会发生这种情况。将焦点集中到迷你缓冲区然后 Ctrl-G 中止的技巧将解决它。
  • 为什么需要检查递归深度?
  • 另外,如果鼠标以外的东西改变了焦点,是否有等效的方法?
【解决方案2】:

迷你缓冲区失去焦点。尝试 C-x o (Control+x o) 重新获得焦点。要取消命令,请在迷你缓冲区中有焦点时按 C-g

【讨论】:

  • 哦,所以这就像一个未完成的命令?我做了 C-x o 并且必须完成所有命令流(在乳胶中插入环境,放置标签,位置等),这样东西就会消失。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-16
  • 1970-01-01
  • 2011-04-09
  • 2011-07-09
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多