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

如果我使用终端并输入命令的文本行,有热键或任何方法来清除/删除该行吗?

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

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

是否有热键或命令可以从上面转到:

>

?

通常我会按键,如果我的当前行是历史记录中的全新行,它会清除它。但是如果我通过键查看我的命令历史并开始编辑或使用这些命令,只会将提示符更改为历史上的下一个最新命令,所以除非我多次按,否则它在这里不起作用。

458360 次浏览

我不确定你是否喜欢它,但我使用Ctrl+一个(开始一行)和Ctrl+K(删除一行)我熟悉emacs中的这些命令,并偶然发现它们。

Ctrl+一个Ctrl+K擦除终端中的当前行。如果需要,您可以使用Ctrl+Y调用它。

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

您可以使用Ctrl+W仅删除一个单词。

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

如果要保留历史记录,可以使用Alt+Shift+#使其成为注释。


Bash Emacs编辑模式备忘单

Ctrl+一个Ctrl+K的替代方案是Ctrl+ECtrl+U

或者如果您使用vi模式,请按Esc,然后按cc

恢复你刚刚删除的内容,Esc然后p:)

总结一下所有的答案:

  • 清理行:您可以使用Ctrl+U清理到开头。
  • 清理线路:Ctrl+ECtrl+U擦除终端中的当前线路
  • 清理线路:Ctrl+一个Ctrl+K擦除终端中的当前线路
  • 取消当前命令行:Ctrl+C
  • 回忆删除的命令:Ctrl+Y(然后Alt+Y
  • 转到行的开头:Ctrl+一个
  • 行的末尾:Ctrl+E
  • 删除正向词,例如,如果您在命令的中间:Ctrl+K
  • 删除左边的字符,直到单词的开头:Ctrl+W
  • 要清除整个命令提示符:Ctrl+L
  • 在行首和当前光标位置之间切换:Ctrl+XX

Ctrl+W将清除左边的单词。

CTRL+R并开始键入以搜索历史中以前的命令。将显示完整行。
CTRL+R再次循环。

  • Ctrl+u移动到行的开头到一个环形缓冲区
  • Ctrl+k移动直到行的末尾到一个环形缓冲区
  • Ctrl+w将光标中留下的字符和(多个)单词移动到环形缓冲区

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

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

"\e\C-k": kill-whole-line

进入您的Readline init文件(传统上为~/.inputrc)。

各种评论:

  • 为了避免意外地重新分配已经用于其他目的的键序列,您可以使用bind -P检查所有绑定。检查建议的绑定

    bind -P | grep '\\e\\C-k'
  • The Readline init file name is is taken from the shell variable INPUTRC. If it is unset, the default is ~/.inputrc, or (if that doesn't exist) /etc/inputrc. Notice that if you have ~/.inputrc, /etc/inputrc will be ignored.
  • To reload your Readline init file, you can use Ctrl+X Ctrl+R.
  • Links to relevant manual sections:

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

  1. Ctrl+一个将光标移动到行的开头
  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+xx在第一个和当前位置之间切换
  16. Ctrl+l清除终端
  17. Ctrl+c取消命令
  18. Ctrl+r历史记录中的搜索命令-键入搜索词
  19. Ctrl+j在当前历史条目处结束搜索
  20. Ctrl+g取消搜索并恢复原始行
  21. Ctrl+n来自历史的下一个命令
  22. Ctrl+p历史记录中的上一个命令

加入列表:

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

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

在Bash中工作,但在Fish中不工作。

为了清洁整条线(2种不同的方式):

  • 首页Ctrl+K
  • 结束Ctrl+U

Alt+#注释掉当前行。如果需要,它将在历史中可用。

另一个完整的列表:

TERMINAL Shortcuts Lists:
Left            Move back one characterRight           Move forward one characterCtrl+b          Move back one characterCtrl+f          Move forward one character
Alt+Left        Move back one wordAlt+Right       Move forward one wordAlt+b           Move back one wordAlt+f           Move forward one word
Cmd+Left        Move cursor to start of lineCmd+Right       Move cursor to end of lineCtrl+a          Move cursor to start of lineCtrl+e          Move cursor to end of line
Ctrl+d          Delete character after cursorBackspace       Delete character before cursor
Alt+Backspace   Delete word before cursorCtrl+w          Delete word before cursorAlt+w           Delete word before the cursorAlt+d           Delete word after the cursor
Cmd+Backspace   Delete everything before the cursorCtrl+u          Delete everything before the cursorCtrl+k          Delete everything after the cursor
Ctrl+l          Clear the terminal
Ctrl+c          Cancel the commandCtrl+y          Paste the last deleted commandCtrl+_          Undo
Ctrl+r          Search command in history - type the search termCtrl+j          End the search at current history entry and run commandCtrl+g          Cancel the search and restore original line
Up              previous command from the HistoryDown            Next command from the HistoryCtrl+n          Next command from the HistoryCtrl+p          previous command from the History
Ctrl+xx         Toggle between first and current position

Ctrl+Alt+退格用于删除行尾向后的单词

Ctrl+删除用于删除行开头的前移词