chi*_*org 12 bash command-line-interface zsh
您知道这种情况:您正在输入一条长命令(例如提交消息)的一半,并意识到您忘记执行一些无法添加的先决条件命令&&。通常,当我遇到这种情况时,我会选择我用鼠标键入的内容,将其复制到剪贴板,按 Ctrl-U 清除该行,运行我的先决条件命令并从剪贴板粘贴。但也许有更好的方法,最好不需要使用鼠标?我正在寻找 bash 和/或 zsh 的解决方案。
Edu*_*nec 20
使用 CTRL-U 后,您可以使用 CTRL-Y 粘贴回已删除的内容。它也可以在使用 CTRL-W 擦除一个或多个单词后工作。
请注意,通过这种方式,您实际上不需要将任何内容复制到剪贴板或使用鼠标选择它 - CTRL-U 实际上可以将行拖到单独的剪贴板,可以这么说。
最近在 SE 的 Unix 和 Linux 站点上对此进行了询问和讨论。我的回答解释说,如果你使用 zsh 作为你的 shell,你可以使用 push-line 功能来隐藏你的正在进行的命令,运行其他东西,然后你的第一个命令会回来,你可以完成它。在.zshrc:
bindkey '^L' push-line
Run Code Online (Sandbox Code Playgroud)
然后使用Ctrl+L挂起当前命令并在运行其他命令后返回。
给出了其他几个答案,包括如何在 bash 中执行类似操作的设置以及在 zsh 中此内置函数的一些自定义版本。