如何在一行中替换我想要的角色

时间:2013-08-30 08:58:12

标签: vim

1 aaa bbb aaa
2 aaa ccccccccc aaa
3 aaa xx aaa

如何将每行的第二 aaa替换为yyy

1 aaa bbb yyy
2 aaa ccccccccc yyy
3 aaa xx yyy

2 个答案:

答案 0 :(得分:2)

发出以下命令将解决您的问题。

  :%s/\(aaa.\{-}\)aaa/\1yyy/g

答案 1 :(得分:1)

另一种方式是\zs\ze,它标记模式中匹配的开始和结束。所以你可以这样做:

:%s/aaa.*\zsaaa\ze/yyy

换句话说,找到“aaa”后跟任何东西然后再找到另一个“aaa”,并用“yyy”替换它。

如果你在一行上有三个“aaa”,这将不起作用,你应该使用\{-}而不是*。 (见:h non-greedy