每次在替换为 之前pattern1
,pattern2
我通常使用/pattern1
来确认正则表达式是正确的。但是,在进行实际替换时,我必须使用:%s/pattern1/pattern2/g
(假设我需要进行全局替换)。这很烦人,并且可能由于拼写错误而失败。
那么有没有一种方便的方法来替换匹配的pattern1
?
每次在替换为 之前pattern1
,pattern2
我通常使用/pattern1
来确认正则表达式是正确的。但是,在进行实际替换时,我必须使用:%s/pattern1/pattern2/g
(假设我需要进行全局替换)。这很烦人,并且可能由于拼写错误而失败。
那么有没有一种方便的方法来替换匹配的pattern1
?
// 最后一次搜索
:%s//replacement/g
会做你想做的事。
但是您也可以考虑%s/pattern1/pattern2/gc
或%s/p1/p2/gn
s 命令前半部分的空字符串默认为最后搜索的模式。
所以
g/fred/s//mary/g
将 fred 的所有实例更改为 mary。
只需使用一个空模式:
:%s//pattern2/g
我觉得:
:.,.+3s//repl/g
应该用 repl 替换接下来 3 行中当前模式的每次出现。
您可以使用类似的东西:%s/pattern/replace/c
(注意尾随c
),vim 会要求确认。