在bash中,如何清除当前输入?
假设在bash中开始编写如下命令:在bash中,如何清除当前输入?,bash,input,Bash,Input,假设在bash中开始编写如下命令: $ rm -rf /foo/bar/really/long/path/here 然后意识到你根本不想执行这个。有没有办法用一次或两次按键清除输入 我最近一直在做的是在echo之前加上引号(Ctrl+A,echo“,Ctrl+E,”),然后按enter键。有没有更快的办法 按Ctrl-U删除光标前的所有内容。已删除的命令将存储在缓冲区中。按Ctrl-Y键粘贴已删除的命令 (可选:按End或Ctrl-E首先跳到输入的末尾。) 或者,按Ctrl-C中止您正在键入的
$ rm -rf /foo/bar/really/long/path/here
然后意识到你根本不想执行这个。有没有办法用一次或两次按键清除输入
我最近一直在做的是在echo之前加上引号(Ctrl+A,echo“
,Ctrl+E,”
),然后按enter键。有没有更快的办法
尝试Ctrl+U。这样可以清除输入行。在同时找到一个短引用
ctrl+e(如果不是在行尾)加上ctrl+u就可以了。有两个选项可以做到这一点 ctrl+c-这将清除整行,无论光标位于何处
ctrl+u-这将清除从光标位置到起点的线 考虑到使用Ctrl-U(或先使用Ctrl-E,然后使用Ctrl-U)将清除的内容存储在缓冲区中,以便以后可以使用Ctrl-Y将其粘贴。要删除当前行,请尝试: Ctrl-X,Ctrl-U 作为替代方案,您可以使用: Esc-D 这需要在~/.inputrc中:
"\ed": kill-whole-line
请参阅:在bash中按Esc加上Backspace将清除光标所在位置的所有内容
(在Cygwin中,这将清除下一个单词的输入。单词之间用空格、下划线等分隔)Ctrl-U、Ctrl-K也可以
Ctrl-U删除从行首到光标的所有内容,Ctrl-K删除从光标到行尾的所有内容。(有时只使用其中一个按钮很有用。)一个很好的快捷方式是按Esc键。它将在前面加上一个
#
字符(从而使该行成为注释),然后按enter键。如果您随后决定仍然需要该命令,那么您的历史记录中仍然有该命令:)如果您正在使用Bash-in(使用设置-o vi
进行设置),则按Esc键切换到vi的正常模式,然后键入dd
删除当前行 这是的扩展,它通过在控制台历史记录中添加哈希前缀来存储该行。克服剪贴板的缺点,例如意外覆盖或无法查看剪切线以供参考
注释行&返回新提示
使用任一快捷键:
- Esc#
- Alt+#
#
将被添加到行的前面,从而将整行变成注释。它还将返回一个新的提示,就像用户按下enter键一样。e、 g
$ #rm -rf /foo/bar/really/long/path/here
$
检索注释行 要从控制台历史记录中恢复旧行,请使用以下快捷方式之一:
- 向上
- Ctrl+p
快速哈希前缀删除 要删除行的哈希
#
前缀,有几个不同的选项可用:
删除第一个字符并立即执行命令:
- Esc,1,Esc#
- Alt+-,Alt+#
- 主页,删除
- Ctrl+a,Ctrl+d
stty-a
进行检查。这将适用于任何不主动修改终端控件的程序。Ctrl-A后跟Ctrl-K也适用。“killed”文本被存储,您可以使用Ctrl-Y将其粘贴。这些按键实际上来自读取行库:。。因此,您可以在用户界面使用库的任何工具(实际上是Emacs、bash等)中找到它们。您可以通过编辑.inputrc文件(查看上面的链接了解更多详细信息)来自定义其行为。或者,假设您粘贴了一个命令,并意识到它是错误的命令。大约20个字符后,退格变得非常旧!Ctrl-C,如果你想保留大多数终端中引用的历史记录,这与Alt+#相同,它只需一次(和弦)按键。这是一个简单而聪明的解决方案,我认为这是一种更方便用户的取消命令的方法。正是我要搜索的:)如果您只想用escape键清除整条线路,请添加“\e\e”:杀死整条线路
(但必须双击esc键)