你知道情况:你input一个长命令(例如一个提交消息)的一半,并意识到你已经忘记执行一些不能用&&添加的先决条件命令。 通常,当发生这种情况时,我select我用鼠标键入的内容,将其复制到剪贴板,按Ctrl-U清除行,运行我的必备命令并粘贴到剪贴板。 但也许有更好的方法,最好不需要使用鼠标? 我正在寻找bash和/或zsh的解决scheme。
使用CTRL-U之后,您可以使用CTRL-Y粘贴已擦除的内容。 它用CTRL-W擦除一个字或一些字后也可以工作。
注意这样你就不需要复制任何东西到剪贴板或者用鼠标select它 – CTRL-U实际上是把这一行放到一个单独的剪贴板上,可以这么说。
在当前行的开头添加一个“#”。 点击回车将评论添加到您的历史logging。 执行先决条件命令。 转到上一个命令并删除#。
这是最近在SE的Unix和Linux站点上被询问和讨论的。 我的答案解释说 ,如果你使用zsh作为你的shell,你可以使用push-linefunction将命令在进行中,运行其他的东西,然后你的第一个命令将返回,你可以完成它。 在.zshrc :
bindkey '^L' push-line
然后使用Ctrl + L暂停当前的命令,并在运行其他的东西后回到它。
还给出了其他几个答案,包括如何在bash中做类似的设置,以及zsh中这个内置的一些定制版本。
您可以使用Shift-Alt-3来注释当前行并转到下一行。 然后你按下, Ctrl-e , Del和tadam!