如何清除/删除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
我有完整的快捷方式列表:
- 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 + x x在第一个和当前位置之间切换
- Ctrl + l清除terminal
- Ctrl + c取消命令
- 在历史logging中按Ctrl + rsearch命令 – 键入search项
- Ctrl + j结束当前历史logging的search
- Ctrl + g取消search并恢复原始行
- 从历史logging中按Ctrl + n下一个命令
- 从历史logging中按Ctrl + p上一个命令
Ctrl + A , Ctrl + K擦除terminal中的当前行。 如果需要的话,你可以用Ctrl + Y来调用它。
或者如果你使用vi模式, 按Esc后跟cc
找回刚擦掉的东西, Esc ,然后p 🙂
我不知道你是否喜欢它,但我使用Ctrl + A (开始行)和Ctrl + K (删除行)我熟悉这些来自emacs的命令,并意识到他们。
Ctrl + A , Ctrl + K的替代方法是Ctrl + E , Ctrl + 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初始化文件名是从shellvariables
INPUTRC
。 如果未设置,则默认为~/.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