Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 是否可以替换vim中的匹配模式?_Regex_Vim_Pattern Matching_Substitution - Fatal编程技术网

Regex 是否可以替换vim中的匹配模式?

Regex 是否可以替换vim中的匹配模式?,regex,vim,pattern-matching,substitution,Regex,Vim,Pattern Matching,Substitution,每次我用pattern2替换pattern1之前,我通常使用/pattern1来确认正则表达式是正确的。但是,在进行实际替换时,我必须使用:%s/pattern1/pattern2/g(假设我需要进行全局替换)。这很烦人,可能会因为打字错误而失败 那么,是否有一种方便的方法来替换匹配的模式1?s命令前半部分中的空字符串默认为最后搜索的模式 所以 将fred的所有实例更改为mary。只需使用空模式: :%s//pattern2/g 我认为: :,.+3s//repl/g 应该用repl替换接下来

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


那么,是否有一种方便的方法来替换匹配的
模式1

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

所以


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

只需使用空模式:

:%s//pattern2/g
我认为:

:,.+3s//repl/g


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

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

//是最后一次搜索
:%s//replacement/g
将执行您想要的操作

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

:%s//pattern2/g