几乎是偶然地,我发现你可以做类似的事情:
$ cp foo.data bar1.data
$ ^bar1^bar2
这会用bar2.data
而不是 来运行相同的命令bar1.data
。现在,如果我有多个目标单词出现怎么办?例如:
$ cp foo.data bar.data
$ ^data^index
它只替换了第一个data
扩展。我该如何让它替换两个扩展?
答案1
我认为^data^index
相当于!!:s/data/index
,所以它只会替换第一个单词。如果你想替换整行,我认为你必须使用!!:gs/data/index/
答案2
您可以通过在末尾添加 ^:& 来实现。
^:& 将替换两次出现的情况
^:g& 将替换所有出现的情况
$ cp foo.data bar.数据 $ ^数据^索引^:& $ cp foo.index bar.index
$ cp foo.数据 bar.数据 joe.数据 doe.数据 $ ^数据^索引^:g& $ cp foo.index bar.index joe.index doe.index
旁注:在《命令行功夫》一书中,
它说 ^:& 将替换所有