sud*_*ash 1 keyboard-shortcuts terminal productivity
在终端中工作时,我经常有如下命令序列:
cat long/path/to/file/xyz.file
nano long/bath/to/file/xyz.file
bash long/path/to/file/xyz.file
Run Code Online (Sandbox Code Playgroud)
等等
通常我按control + A,向右键几次,退格几次,然后写新命令。
但是在我这样做的十秒钟内,我总是想知道是否有一些神奇的捷径可以为我做到这一点。所以我的问题是...
是否有删除命令但保留参数的终端快捷方式?
如果没有,有没有办法编写自己的快捷方式?
如果重要的话,我大部分时间使用的终端是 Ubuntu 和 OSX。
在很多shell中,AltD会删除从光标到光标下的单词的末尾,所以可以做CtrlAfollow byAltD来删除第一个单词。
或者,在具有历史操作的 shell 中,!:1-$将被上一个命令的所有参数替换,因此您可以键入新命令,然后输入新命令以复制上一个命令的参数:
$ echo Hello sudo rm -rf slash
Hello sudo rm -rf slash
$ printf "%s " !:1-$
Hello sudo rm -rf slash
Run Code Online (Sandbox Code Playgroud)
如果您的命令只有单个参数,或者您只对最后一个参数感兴趣,则可以将其缩短为!$; 所以在你的情况下
$ cat long/path/to/file/xyz.file
$ nano !$
$ bash !$
Run Code Online (Sandbox Code Playgroud)