首页 文章

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

提问于
浏览
593

如果我正在使用终端并为命令输入一行文本,是否有热键或任何方式来清除/删除该行?

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

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

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

>

通常我会按↓键,如果我的当前行是历史上的全新行,那将清除它 . 但是如果我通过↑键浏览我的命令历史并开始编辑或使用这些命令,↓只会将提示更改为历史记录中的下一个最新命令,因此除非我多次按↓,否则它不起作用 .

13 回答

  • 15

    您可以使用Ctrl U清除开头 .

    您可以使用Ctrl W删除一个单词 .

    您也可以使用Ctrl C取消 .

    如果要保留历史记录,可以使用Alt Shift#将其作为注释 .


    Bash Emacs编辑模式备忘单

  • 2

    只是总结一下所有的答案:

    • 清理线:您可以使用Ctrl U清除开头 .

    • 清理线路:Ctrl E Ctrl U擦除终端中的当前线路

    • 清理线路:Ctrl A Ctrl K擦除终端中的当前线路

    • 取消当前命令/行:Ctrl C.

    • 调用已删除的命令:Ctrl Y(然后是Alt Y)

    • 转到行尾:Ctrl A.

    • 转到行尾:Ctrl E.

    • 例如,如果您在命令的中间,则删除前向单词:Ctrl K.

    • 删除左侧的字符,直到单词的开头:Ctrl W

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

    • 在行开头和当前光标位置之间切换:Ctrl XX

  • 460

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

    • Ctrl a将光标移动到行首

    • Ctrl e将光标移动到行尾

    • Ctrl b向后移动一个字符

    • Alt b向后移动一个单词

    • Ctrl f向前移动一个字符

    • Alt f向前移动一个单词

    • Ctrl d删除当前字符

    • Ctrl w剪切最后一个单词

    • Ctrl k剪切光标后的所有内容

    • Alt d光标后剪切字

    • Alt w剪切光标前的单词

    • Ctrl y粘贴上次删除的命令

    • Ctrl _撤消

    • Ctrl u剪切光标前的所有内容

    • Ctrl xx在第一个和当前位置之间切换

    • Ctrl l清除终端

    • Ctrl c取消命令

    • Ctrl r历史记录中的搜索命令 - 键入搜索词

    • Ctrl j结束当前历史记录条目的搜索

    • Ctrl g取消搜索并恢复原始行

    • Ctrl n历史记录中的下一个命令

    • Ctrl p历史记录中的上一个命令

  • 21

    按Ctrl A,Ctrl K擦除终端中的当前行 . 然后,如果需要,可以使用Ctrl Y调用它 .

  • 10

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

    找回你刚刚删除的东西,Esc然后p :)

  • 9

    Ctrl A,Ctrl K的替代方案是Ctrl E,Ctrl U.

  • 2

    我不确定你是否喜欢它,但我使用Ctrl A(开始行)和Ctrl K(删除行)我熟悉emacs的这些命令,并意外地弄清楚了 .

  • 2
    • Ctrl u: move 直到行的开头到环形缓冲区

    • Ctrl k: move 直到您的行的末尾到环形缓冲区

    • Ctrl w: move 个字符和(多个)单词从光标留到环形缓冲区

    • Ctrl y:从环形缓冲区插入最后一个条目,然后您可以使用Alt y在环形缓冲区中旋转 . 按多次以继续在环形缓冲区中输入"previous" .

  • 6

    CTRL R并开始键入以搜索历史记录中的先前命令 . 将显示完整的线条 .
    CTRL R再次循环 .

  • 3

    Ctrl W将清除左侧的单词 .

  • 1099

    添加到列表:

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

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

    在Bash中工作,但在Fish中不起作用 .

  • 1

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

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

    进入您的Readline初始化文件(通常为 ~/.inputrc ) .

    各种评论:

    • 为避免意外重新分配已用于其他内容的键序列,您可以用 bind -P 检查所有绑定 . 检查建议的绑定
    bind -P | grep '\\e\\C-k'
    
    • Readline初始化文件名取自shell变量 INPUTRC . 如果未设置,则默认为 ~/.inputrc ,或(如果不存在) /etc/inputrc . 请注意,如果您有 ~/.inputrc ,则会忽略 /etc/inputrc .

    • 要重新加载Readline初始化文件,可以使用Ctrl X Ctrl R.

    • 相关手册部分的链接:

    • Readline Init File

    • Readline killing and yanking commands

    • bind builtin

  • 112

    为了清理整条 生产环境 线(2种不同的方式):

    • Home,Ctrl K.

    • 结束,Ctrl U.

相关问题