用于存储键入的命令并清理行的键盘快捷键

chi*_*org 12 bash command-line-interface zsh

您知道这种情况:您正在输入一条长命令(例如提交消息)的一半,并意识到您忘记执行一些无法添加的先决条件命令&&。通常,当我遇到这种情况时,我会选择我用鼠标键入的内容,将其复制到剪贴板,按 Ctrl-U 清除该行,运行我的先决条件命令并从剪贴板粘贴。但也许有更好的方法,最好不需要使用鼠标?我正在寻找 bash 和/或 zsh 的解决方案。

Edu*_*nec 20

使用 CTRL-U 后,您可以使用 CTRL-Y 粘贴回已删除的内容。它也可以在使用 CTRL-W 擦除一个或多个单词后工作。

请注意,通过这种方式,您实际上不需要将任何内容复制到剪贴板或使用鼠标选择它 - CTRL-U 实际上可以将行拖到单独的剪贴板,可以这么说。


gle*_*man 5

在当前行的开头添加一个“#”。按 Enter 键将评论添加到您的历史记录中。执行先决条件命令。转到上一个命令并删除#。


Cal*_*leb 5

最近在 SE 的 Unix 和 Linux 站点上对此进行了询问和讨论我的回答解释说,如果你使用 zsh 作为你的 shell,你可以使用 push-line 功能来隐藏你的正在进行的命令,运行其他东西,然后你的第一个命令会回来,你可以完成它。在.zshrc

bindkey '^L' push-line
Run Code Online (Sandbox Code Playgroud)

然后使用Ctrl+L挂起当前命令并在运行其他命令后返回。

给出了其他几个答案,包括如何在 bash 中执行类似操作的设置以及在 zsh 中此内置函数的一些自定义版本。