【问题标题】:how to empty or clear the emacs minibuffer?如何清空或清除 emacs minibuffer?
【发布时间】:2016-09-17 05:46:19
【问题描述】:

有时小缓冲区的内容会显示命令的输出 (emacs 24)。当输出只有一行时,这并没有太大的不便。当命令是多行时更烦人,并且迷你缓冲区使用许多可用于其他内容的显示行。

有没有办法清除 minibuffer 的内容?

注意:当我M-! echo usage: foo ; echo 时,minibuffer 内容变为usage: foo

注意:我不在递归编辑中,小缓冲区未激活,使用C-g, M-x C-g , (message nil), M-x delete-minibuffer-contents, M-: (kill-buffer " Echo Area 0") 不会清除小缓冲区

【问题讨论】:

标签: emacs


【解决方案1】:

通常,C-g 在这些情况下工作得很好。它会在 minibufer 中打印“Quit”,这只是一行并且足够不显眼。

如果您需要以编程方式清除迷你缓冲区,请致电(message nil)

如果由于某种原因,C-g 对您不起作用,请创建一个新命令和一个键绑定以清除迷你缓冲区

(defun my-clear-message ()
  (interactive)
  (message nil))

(global-set-key (kbd "C-c c") 'my-clear-message)

【讨论】:

  • 下次遇到这个问题我会试试(message nil),谢谢你的提示:-)
【解决方案2】:

根据您的描述(“迷你缓冲区未激活”)以及您对其他答案的回复,我的猜测是 不是 需要清除的迷你缓冲区 - 它是 echo地区

这是相同的物理空间,但回显区域用于输出(例如message),而迷你缓冲区主要用于输入。

要清除回声区域,请按照建议使用(message nil)。或者使用 minibuffer,后跟 C-g - 例如,M-x C-g。这通常会完成这项工作(但请参阅下文,如果您确实需要清除回声区域缓冲区,请参阅下文)。

如果确实是您要清除的 minibuffer 输入,则:

  • C-g(必要时重复)退出小缓冲区。
  • 您可以使用任何文本清除键来清除输入而不退出。例如,C-x DEL 会清除很多(它是backward-kill-sentence)。我将M-k(通常是kill-sentence)绑定到一个删除所有minibuffer输入的命令(例如Icicles就是这种情况)。命令delete-minibuffer-contents 将其全部清除。

(你也可以杀死 echo-area 缓冲区,如果它被一些你想摆脱的文本污染了。缓冲区将自动重新创建。使用 vanilla Emacs 这样做有点问题交互方式,但您至少可以使用 M-: (kill-buffer " *Echo Area 0*")(注意 SPC 字符前缀)。

【讨论】:

    【解决方案3】:

    虽然我不明白为什么以下会清除迷你缓冲区:M-! echo ; echo

    【讨论】:

      【解决方案4】:

      当您在 Emacs 中执行任何其他操作时,通常会立即清除此输出。但有时 Emacs 会感到困惑,并且消息会不断重新出现在 echo 区域中。

      删除名为*Shell Command Output* 的缓冲区可以解决问题,但是当我遇到这种情况时,Emacs 拒绝删除该缓冲区。删除此缓冲区的内容可以解决问题,但下次执行 shell 命令时输出会重新出现在缓冲区中。

      您可以通过重命名缓冲区来防止该问题。一种方法是使该缓冲区成为当前缓冲区(例如,使用C-x bM-x switch-to-buffer)并执行M-x rename-uniquely。如果你这样做并删除缓冲区的内容,就可以避免问题。

      我不知道为什么有时 Emacs 拒绝杀死这个缓冲区,但幸运的是它允许重命名它,因此它将不再被重用于命令输出。

      【讨论】:

        【解决方案5】:

        尝试按C-g,这将清除回声区域。

        【讨论】:

          猜你喜欢
          • 2011-07-08
          • 2012-04-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-19
          相关资源
          最近更新 更多