0

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

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

4

5 回答 5

4

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

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

于 2013-01-31T15:44:02.890 回答
1

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

所以

g/fred/s//mary/g

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

于 2013-01-31T15:39:30.427 回答
1

只需使用一个空模式:

:%s//pattern2/g
于 2013-01-31T15:39:57.427 回答
1

我觉得:

:.,.+3s//repl/g

应该用 repl 替换接下来 3 行中当前模式的每次出现。

于 2013-01-31T15:41:09.753 回答
1

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

于 2013-01-31T15:41:47.867 回答