如何清除/删除terminal中的当前行?

如果我正在使用terminal并input一行命令的文本,是否有一个热键或任何方式来清除/删除该行?

例如,如果我的当前行/命令是非常长的,如:

> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now> 

有没有一个热键或命令从上面去:

 > 

通常我会按键,如果我现在的线是历史上的一个全新的线,那就清除它。 但是如果通过键浏览我的命令历史logging并开始编辑或使用这些命令, 只会将提示更改为历史logging中的下一个最新命令,所以在这里不起作用,除非我多次按

您可以使用Ctrl + U清除至开头。

您也可以使用Ctrl + C来取消。

如果您想保留历史logging,可以使用Alt + Shift + 使其成为注释。


Bash Emacs编辑模式备忘单

只是总结所有的答案

  • 清理该行:可以使用Ctrl + U清除起始。
  • 清理该行: Ctrl + A Ctrl + K擦除terminal中的当前行
  • 取消当前的命令/行: Ctrl + C。
  • 回想一下删除的命令: Ctrl + Y (然后Alt + Y
  • 在行的开头: Ctrl + A
  • 在行尾: Ctrl + E
  • 例如,删除前进的单词,如果你是命令的中间: Ctrl + K
  • 删除左侧的字符,直到单词的开头: Ctrl + W
  • 清除整个命令提示符: Ctrl + L
  • 在行首和当前光标位置之间切换: Ctrl + XX

我有完整的快捷方式列表:

  1. Ctrl + a将光标移动到行首
  2. Ctrl + e将光标移动到行尾
  3. Ctrl + b移回一个字符
  4. Alt + b移回一个单词
  5. Ctrl + f向前移动一个字符
  6. Alt + f向前移动一个单词
  7. Ctrl + d删除当前字符
  8. Ctrl + w切掉最后一个字
  9. Ctrl + k剪切光标后的所有内容
  10. Alt + d切换光标后的单词
  11. Alt + w切出光标前的单词
  12. Ctrl + y粘贴上次删除的命令
  13. Ctrl + _撤消
  14. Ctrl + u剪切光标前的所有内容
  15. Ctrl + x x在第一个和当前位置之间切换
  16. Ctrl + l清除terminal
  17. Ctrl + c取消命令
  18. 在历史logging中按Ctrl + rsearch命令 – 键入search项
  19. Ctrl + j结束当前历史logging的search
  20. Ctrl + g取消search并恢复原始行
  21. 从历史logging中按Ctrl + n下一个命令
  22. 从历史logging中按Ctrl + p上一个命令

Ctrl + ACtrl + K擦除terminal中的当前行。 如果需要的话,你可以用Ctrl + Y来调用它。

或者如果你使用vi模式, 按Esc后跟cc

找回刚擦掉的东西, Esc ,然后p 🙂

我不知道你是否喜欢它,但我使用Ctrl + A (开始行)和Ctrl + K (删除行)我熟悉这些来自emacs的命令,并意识到他们。

Ctrl + ACtrl + K的替代方法是Ctrl + ECtrl + U。

  • Ctrl + u向上移动到行的开始位置,进入环形缓冲区
  • Ctrl + k :直到行的末尾移动到一个环形缓冲区
  • Ctrl + w光标左边的字符和(多个)单词移动到环形缓冲区

  • Ctrl + y :从环形缓冲区中插入最后一个条目,然后可以使用Alt + y在环形缓冲区中旋转。 按多次继续进入环形缓冲区的“上一个”input。

按Ctrl + W将清除左侧的单词。

CTRL + R并开始input以search历史logging中的先前命令。 将显示全部行。
CTRL + R再次循环。

添加到列表:

在Emacs模式下, 按Esc ,然后按R ,将删除整行。

我不知道为什么,只是碰巧find它。 也许它不用于删除行,但恰好具有相同的效果。 如果有人知道,请告诉我,谢谢:)

在Bash工作,但不会在鱼工作。

要删除整行,无论光标在哪里,都可以使用kill-whole-line命令,但默认情况下它是未绑定的。 例如,可以通过插入将其绑定到Ctrl + Alt + K

 "\e\Ck": kill-whole-line 

放入你的Readline初始化文件(通常是~/.inputrc )。

各种评论:

  • 为了避免意外重新分配已经用于别的东西的键序列,可以使用bind -P来检查所有的绑定。 检查与build议的绑定

     bind -P | grep '\\e\\Ck' 
  • Readline初始化文件名​​是从shellvariablesINPUTRC 。 如果未设置,则默认为~/.inputrc或(如果不存在) /etc/inputrc 。 注意,如果你有~/.inputrc/etc/inputrc将被忽略。
  • 要重新载入您的Readline初始化文件,您可以使用Ctrl + X Ctrl + R。
  • 有关手册章节的链接:
    • Readline初始化文件
    • Readline杀死和命令
    • bind内置

只是总结所有的答案

  • 清理该行:可以使用Ctrl + U清除起始。
  • 清理该行: Ctrl + A Ctrl + K擦除terminal中的当前行
  • 取消当前的命令/行: Ctrl + C。
  • 回想一下删除的命令: Ctrl + Y
  • 在行的开头: Ctrl + A
  • 例如,删除前进的单词,如果你是命令的中间: Ctrl + K
  • 删除左侧的字符,直到单词的开头: Ctrl + W

在这里,我将添加一个更重要的命令:

  • 清除整个命令提示符: Ctrl + L