有可能用vim中的匹配模式替换吗?

时间:2013-01-31 15:38:00

标签: regex vim pattern-matching substitution

每次用pattern1替换pattern2之前,我通常会使用/pattern1来确认正则表达式是正确的。但是,在进行实际替换时,我必须使用:%s/pattern1/pattern2/g(假设我需要进行全局替换)。这很烦人,可能因拼写错误而失败。

有没有一种方便的方法来替换匹配的pattern1

5 个答案:

答案 0 :(得分:4)

//是最后一次搜索 :%s//replacement/g会做你想做的事。

但您也可以考虑%s/pattern1/pattern2/gc%s/p1/p2/gn

答案 1 :(得分:1)

s命令前半部分的空字符串默认为最后搜索的模式。

所以

g/fred/s//mary/g

将fred的所有实例更改为mary。

答案 2 :(得分:1)

只使用空图案:

:%s//pattern2/g

答案 3 :(得分:1)

我认为:

:。,+ 3秒// REPL /克

应该用repl。

替换接下来3行中当前模式的每个出现

答案 4 :(得分:1)

您可以使用类似:%s/pattern/replace/c的内容(请注意尾随c),vim会要求确认。