Answers:
假设您正在使用bash,请使用Ctrl+ U。
许多等待您键入命令行然后执行该命令行的程序,包括bash,都用Ctrl+ C表示“中止当前任务并返回主提示符”。
包括bash在内的一些程序使用Ctrl+ U(在OS X中从终端清除命令)表示“擦除行的开头,直到光标”(或“擦除整行”)。
在bash中,Ctrl+ C和Ctrl+ 之间的可观察到的差异U包括:
有时您想停止键入命令,而是在外壳历史记录中输入该命令以稍后运行。一个有用的技巧是#
在行的开头放置a 并执行它:由于该行现在是注释,因此它不会执行任何操作。在bash中,有一个单键快捷键:Alt+ #。
有一个readline
可能未绑定到称为的按键的函数,该函数kill-whole-line
将杀死整个行,而不是仅杀死光标之前的部分(unix-line-discard
这有点误用,并绑定到Ctrl- u)。
您可以将其绑定到任何可用的击键。我喜欢ShiftAlt- U因为它是一个相关功能。该击键可能会绑定到do-lowercase-version
该键,这意味着它会执行未更改版本的操作(在这种情况下为upcase-word
)。由于我们实际上并不需要两个键,因此让我们使用那个。
您可以在命令行中通过以下方式创建绑定来进行尝试:
bind '"\eU":kill-whole-line'
或通过在~/.inputrc
文件中添加以下行使其持久化:
"\eU":kill-whole-line
要撤消Ctrl- u或ShiftAlt- U(或者是可撤消的任何操作),按Ctrl- - Shift(_下划线)或Ctrl- - x Ctrl(u两次击键)。或者,您可以通过按回粘贴(取消)杀死的内容Ctrl- y如果您想要该文本的多个副本,可以重复进行。
顺便说一句,如果您想杀死从光标到行尾的文本,可以按Ctrl- k。因此,而不是做结合上述的,你可以杀死按一整行Ctrl- - 。u Ctrl k这些击键中的第二次击中的部分将仅保存在击杀缓冲区中,但是您仍然可以执行两次撤消来恢复它们。