我正在尝试替换/删除模式中的几列。
模式的例子如下:
(. xx,asdf,gh,df.)
我想这样做:
(.asdf,gh,df.)
对于搜索,我使用/(.\zs[^,]\ze[^,^,^.)]
这对搜索没有帮助。
这也突出了每个模式的第一列。即ex(.12,23,34。)模式。
我的搜索答案是在第一个模式中突出显示x,在第二个模式中突出显示1之前的空白空间。
我希望我的搜索仅适用于第一种模式。 搜索我的第一步是没有按预期工作。
有人可以帮助我。 非常感谢你提前帮助。
答案 0 :(得分:2)
:%s#\v(\(\.)([^,]{-},)(.{-}\.\))#\1\3#g
这将替换:(. xx,asdf,gh,df.)
- > (.asdf,gh,df.)
如果您只想突出显示它(在您的情况下是_xx
“_表示空格”),您可以尝试使用后视:
/\((\.\)\@<=[^,]*
根据评论 编辑
假设我们有一个文件:
(. xx,asdf,gh,df,foo.)
(. xx,asdf,gh,df.)
(. xx,gh,df.)
(. xx,df.)
(. xx.)
在vim中:
:%s#\v(\(\.)([^,]*,)([^,]*,[^,]*,[^,\.]*\.\))#\1\3#g
我们得到了:
(. xx,asdf,gh,df,foo.)
(.asdf,gh,df.)
(. xx,gh,df.)
(. xx,df.)
(. xx.)