【问题标题】:How to quickly delete all text in emacs' minibuffer?如何快速删除 emacs 的 minibuffer 中的所有文本?
【发布时间】:2011-09-15 09:44:20
【问题描述】:

我是 Emacs 新手。我在 Windows 上运行 emacs。当我通过单击runemacs.exe 启动 Emacs 时,我看到了一个欢迎窗口。现在要创建一个新文件并进行一些实验编辑,我按 C-x C-f。现在 minibuffer 显示类似于:

Find file: d:\emacs-23.3\bin

通常我需要按退格键删除d:\emacs-23\bin 并键入一个新文件名,如c:\test\a.txt。我的问题是,我怎样才能快速删除d:\emacs-23\bin?欢迎窗口怎么处理(我不喜欢)?

谢谢

【问题讨论】:

  • 关于欢迎窗口的问题确实是一个单独的问题。你不应该仅仅因为你同时想到两个不相关的问题而将它们结合起来。发布两个问题。

标签: emacs editor text-editor


【解决方案1】:

backward-kill-sentence 默认绑定到 C-x DEL

或者,您可以输入 C-a C-k,我觉得输入起来稍微容易一些,因为

  1. 您不必在按下第三个键之前松开 CTRL 键。
  2. 你的右手不必离开主行

此组合键首先将点(也称为光标)移动到行首,然后终止该行。所以实际上是两个命令,但是击键的次数是一样的。

【讨论】:

  • +1 C-a C-k 对我来说也是如此......而且 C-a 和 C-k 在许多其他情况下都很有用:)
  • C-a C-k 在 find-file 提示符中将替换您最近的杀戮,并用多余的路径破坏您的杀戮环。仅在末尾附加绝对路径没有副作用,并且是最简单的执行方式。
  • 这是否多余取决于情况。您始终可以使用yank-pop 检索上一次击杀。确实,仅输入绝对路径更容易执行,并且可能是发帖人所追求的(因此这是公认的答案),但它实际上并没有像写的那样回答问题。
  • 我喜欢用c-e c-u,但是思路是一样的
  • C-u 通常用于前缀参数(universal-argument),您是否将其重新绑定到其他东西?
【解决方案2】:

您不需要删除默认文件名。继续输入你的文件

d:\emacs-23.3\bin\c:\test\a.txt

【讨论】:

  • 请注意,这仅适用于绝对路径,并且仅适用于 Windows。
  • 更正我上面的评论:您也可以在类 Unix 系统上为绝对路径实现类似的行为。只需确保使用两个斜杠来标记绝对路径的开头,而不是仅使用一个与相对路径无法区分的斜杠。
【解决方案3】:

在类 unix 操作系统上,您可以在提示符中的文件名或路径名之后键入 ~/。然后,Emacs 将其作为文件路径的起点。 ~ 从你的主目录开始,/ 从根目录开始。

示例:假设提示符为Find file: /var/tmp/etc/list/foo/bar/,然后只需键入~/.emacs 即可在您的主目录中获取点-emacs 文件。无需删除任何内容。

【讨论】:

  • 在 Windows 上,您可以在默认路径名之后键入 ~/c:/(其中 c: 可以是任何驱动器号)。
【解决方案4】:

你可以使用默认绑定到M-DEL

的backward-kill-sentence

如果您使用 ido-mode(如果没有,您应该尝试一下,它非常有用)您可以开始输入您要打开的文件的路径或名称,它会给您一些建议。

对于启动消息,您可以在 .emacs 中添加以下内容:

(setq inhibit-startup-message t)

【讨论】:

  • M-DEL 默认为backward-kill-word
  • 你是完全正确的,我在 C-DEL 和我的 emacs 中绑定 backward-kill-wordC-x DEL for backward-kill-sentence 之间混淆了
  • 对于它的价值,如果你想要更多的 emacs 自定义,比如删除起始消息或用 y/n 替换是/否来回答 emacs 问题,你可以看看我的own .emacs
【解决方案5】:

给出的答案可能是目前最好的方法,但是一旦你使用 emacs 一段时间,你应该看看ido-mode。键入 M-x ido-mode 开始,然后使用箭头键在文件路径中快速移动。

【讨论】:

    【解决方案6】:

    我通常使用以下 lisp 代码通过一个组合键来终止当前行。这将删除整行并将光标移到开头。

    (defun my-kill-line ()
      "kill current line. you don't have to put point at the beginning of line."
      (interactive)
      (copy-kill 'kill 'line))
    

    一个更好的方法(一旦你熟悉了 Emacs 的使用)是使用一些包来使你的文件导航更容易。看看 helm(或 ido)我个人更喜欢 helm 和 projectile。结合 helm+projectile,您可以非常快速地打开文件并在位于不同目录/项目的文件之间轻松切换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-10
      • 1970-01-01
      • 2013-07-28
      • 1970-01-01
      • 2013-10-23
      • 1970-01-01
      • 2017-12-18
      • 1970-01-01
      相关资源
      最近更新 更多