重复匹配模式并替换

时间:2012-12-11 08:09:05

标签: vim

我想重复搜索并替换如下:

示例:

set_path 1 -start -from [get_obj { A_1[0] B_2[1] .... Z_n[100] }]

替换为

set_path 1 -start -from [get_obj {xyz/A_1[0] xyz/B_2[1]  .... xyz/Z_n[100]

3 个答案:

答案 0 :(得分:2)

点击Esc,然后输入:

:%s/array/xyz\/array/g

答案 1 :(得分:1)

:%s/ \(\u\)/ xyz\/\1/g

\ 1表示在第一个括号中匹配的内容。 这意味着将每个空格和大写字母替换为xyz和大写字母。

答案 2 :(得分:0)

要使用可变命名的数组名称进行此操作,您可以执行以下操作:

s:\v([^[ {]+\[[0-9]+\]):xyz/\1:g
  • \v开启"非常神奇"正则表达式,请参阅:help /magic
  • [^[ {]+确保匹配括号,空格或花括号的唯一字符串
  • \[[0-9]+\]确保"看起来"像数组引用一样。