如果我使用终端并为命令输入一行文本,是否有热键或任何方法可以清除/删除该行?
例如,如果我当前的行/命令非常长,例如:
> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now>
是否有热键或命令可以从上面转到:
>
?
通常我会按↓键,如果我当前的行是历史上的新行,那将清除它。但是,如果我通过 ↑ 键浏览我的命令历史记录并开始编辑或使用这些命令,↓ 只会将提示更改为历史中的下一个最新命令,因此除非我多次按 ↓,否则它在这里不起作用。
您可以使用 Ctrl+U 清除到开头。
您可以使用 Ctrl+W 仅删除一个单词。
您也可以使用 Ctrl+C 取消。
如果要保留历史记录,可以使用 Alt+Shift+# 将其设为注释。
Bash Emacs Editing Mode Cheat Sheet
总结一下所有的答案:
清理行:您可以使用 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
Alt + D
Alt
+ D
不起作用这就是为什么我没有包括它:(
CTRL + L
清除屏幕但保留在当前命令行中输入的内容。
Ctrl + Alt + >
移动到输入历史的末尾,当您想取消搜索历史时,这是完美的选择。
我有完整的快捷方式列表:
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 历史记录中的上一个命令
CTRL
+ L
(16.) 保留了当前命令行的内容。
Ctrl
+h
:删除光标前的字符
Ctrl+A、Ctrl+K 擦除终端中的当前行。然后,如果需要,您可以使用 Ctrl+Y 调用它。
另一个不错的完整列表:
TERMINAL Shortcuts Lists:
Left Move back one character
Right Move forward one character
Ctrl+b Move back one character
Ctrl+f Move forward one character
Alt+Left Move back one word
Alt+Right Move forward one word
Alt+b Move back one word
Alt+f Move forward one word
Cmd+Left Move cursor to start of line
Cmd+Right Move cursor to end of line
Ctrl+a Move cursor to start of line
Ctrl+e Move cursor to end of line
Ctrl+d Delete character after cursor
Backspace Delete character before cursor
Alt+Backspace Delete word before cursor
Ctrl+w Delete word before cursor
Alt+w Delete word before the cursor
Alt+d Delete word after the cursor
Cmd+Backspace Delete everything before the cursor
Ctrl+u Delete everything before the cursor
Ctrl+k Delete everything after the cursor
Ctrl+l Clear the terminal
Ctrl+c Cancel the command
Ctrl+y Paste the last deleted command
Ctrl+_ Undo
Ctrl+r Search command in history - type the search term
Ctrl+j End the search at current history entry and run command
Ctrl+g Cancel the search and restore original line
Up previous command from the History
Down Next command from the History
Ctrl+n Next command from the History
Ctrl+p previous command from the History
Ctrl+xx Toggle between first and current position
或者如果您使用 vi 模式,请按 Esc,然后按 cc
取回你刚刚删除的内容,Esc 然后 p :)
echo 'set editing-mode vi' >> ~/.inputrc
启用 vi 模式。也适用于 python 解释器提示和一些 SQL 客户端等地方
我不确定你是否喜欢它,但我使用 Ctrl+A(开始行)和 Ctrl+K(删除行)我对 emacs 中的这些命令很熟悉,并且偶然发现了它们。
Ctrl+A、Ctrl+K 的替代方法是 Ctrl+E、Ctrl+U。
Ctrl+u:向上移动到行首到环形缓冲区
Ctrl+k:向上移动到行尾到环形缓冲区
Ctrl+w:将光标左侧的字符和(多个)单词移动到环形缓冲区
Ctrl+y:插入环形缓冲区的最后一个条目,然后您可以使用 Alt+y 旋转环形缓冲区。多次按以继续在环形缓冲区中“上一个”条目。
CTRL+R 并开始键入以搜索历史记录中的先前命令。将显示完整的线条。 CTRL+R 再次循环。
无论光标在哪里,要删除整行,可以使用kill-whole-line
命令,但默认不绑定。例如,可以通过插入将其绑定到 Ctrl+Alt+K
"\e\C-k": kill-whole-line
进入您的 Readline 初始化文件(通常为 ~/.inputrc
)。
各种备注:
为避免意外重新分配已用于其他用途的键序列,您可以使用 bind -P 检查所有绑定。使用 bind -P | 检查建议的绑定grep '\\e\\Ck'
Readline 初始化文件名取自 shell 变量 INPUTRC。如果未设置,则默认为 ~/.inputrc,或(如果不存在)/etc/inputrc。请注意,如果您有 ~/.inputrc,则 /etc/inputrc 将被忽略。
要重新加载 Readline 初始化文件,可以使用 Ctrl+X Ctrl+R。
相关手册部分的链接: Readline Init File Readline kill and yanking commands The bind builtin
读取线初始化文件
Readline 杀戮和拉拽命令
内置绑定
为了清洁整条生产线(2种不同的方式):
主页 , Ctrl+K
结束 , Ctrl+U
Ctrl+W 将清除左边的单词。
添加到列表中:
在 Emacs 模式下,按 Esc,然后按 R,将删除整行。
不知道为什么,就是碰巧找到了。也许它不用于删除行,但恰好具有相同的效果。如果有人知道,请告诉我,谢谢:)
在 Bash 中工作,但在 Fish 中不起作用。
revert-line
readline 命令:“撤消对此行所做的所有更改”。默认情况下,它绑定到 M-r
(Meta-R),它可以是 Alt-R 或 Esc R。这意味着它实际上并没有删除该行,只有当它开始为空时;如果您在命令历史记录中向后滚动并更改命令,然后发出 revert-line
,它将更改回原来的命令,而不是删除该行。
Alt+# 注释掉当前行。如果需要,它将在历史记录中可用。
Ctrl+Alt+Backspace 用于从行尾删除向后的单词
Ctrl+Delete 用于从行首删除向前的单词
不定期副业成功案例分享
U
/A
和Y
更像是剪切粘贴。尝试多次执行Ctrl
+Y
。ESC
是它自己在 bash 中的修饰键。它用于取消历史导航 (CTRL
+r
) 或交换光标后面的最后两个单词 (ESC
+t
)。