我经常在这种情况下发现自己。我正在输入命令,在完成之前我需要检查其他内容。
有没有办法用我目前的输入打开某种子shell,到目前为止我还记得,然后当我退出这个子shell时,我又回到了原来的地方?
$ mylongcommand -n -e <SOME KEY COMBINATION WHICH OPENS A SUBSHELL>
$ date
...
$ exit
$ mylongcommand -n -e <BACK TO WHERE I WAS>
Run Code Online (Sandbox Code Playgroud)
我正在使用 zsh
Zac*_*ady 18
我通常使用Ctrl+U擦除当前行并将其保存到缓冲区中。从那里我做任何我需要在mylongcommand. 然后当我准备好时,我使用Ctrl+Y粘贴mylongcommand回我的提示中。
Bod*_*odo 16
有一个组合键EscQ可以保存命令缓冲区并允许输入新命令。运行命令后,缓冲区包含您之前键入的内容。如果在完成此操作之前必须运行另一个命令,则可以EscQ再次键入。
(按下后我没有尝试打开子shell EscQ。)
请参阅http://zsh.sourceforge.net/Intro/intro_10.html并搜索“esc-q”
我对此的解决方案绝对是低技术和笨重的,但依赖于您可能已经熟悉的键序列:Hit Ctrl+ A, then #, then ENTER。
这具有#在行的开头插入 a 的效果,从而使其成为注释,然后执行它,从而将其推入命令历史记录中。然后,您可以输入辅助命令,然后向上滚动命令历史记录到注释命令,#根据需要删除并完成命令。