有很多方法可以剥皮这只猫!
要替换特定的字符串,^old^new^extra将使用您先前的命令,替换old为new,然后追加extra。您可能会尽早停止;例如^old将替换old为空字符串并追加空字符串(本质上是删除old并仅执行其他操作)。
1. ^diff^checkout
2. ^cat^rm
特别有用的变体:
for i in `seq 1 10`; do echo something complicated; done
# inspect the output to see if it looks right
^echo
要替换一个特定的词,你可以使用!m:n-p引用的话n通过p命令m(使用负数从当前指令计数回)。您可以省略该-p部分以引用单个单词,也可以省略该:m-p部分以引用整个命令。!!对于!-1,!$上一个命令的最后一个单词和上一个命令!*的参数(除word以外的所有参数0)的特殊格式非常方便。
1. !!:0 checkout !!:2-
2. rm !*
我经常使用这两种方式。zsh在这里特别好,因为点击选项卡将扩展神秘的内容,以确保您安装正确。
行编辑也有很多方法可以做到这一点。阅读外壳程序的键绑定。