我该怎么做这个搜索和替换vim?

时间:2011-08-23 17:43:18

标签: regex vim

我有一个包含以下行的文本文件:

options [15] = new Option(“text1”,“25”);

options [16] = new Option(“text2”,“23”);

options [17] = new Option(“text3”,“12”);

(以及......)

如何用文本#?替换每一行?例如,第一行应替换为text1,第二行应替换为text2等等。

3 个答案:

答案 0 :(得分:3)

作为:s的替代方案并使用宏,我有时会发现:normal非常愉快。

%norm df"f"d$

我们可以将其缩短,但使用;动作重复f"动作并使用与D相同的d$

%norm df";D

答案 1 :(得分:2)

阅读:h /\(

%s/\Voptions[\d\+]=new Option("\(text\d\+\)","\d\+");/\1/g

答案 2 :(得分:2)

看起来你已经在源头中拥有它们了。假设你有这样的行:

    options [15] = new Option(“text#”,“25”);
...

你想改变这个:

    options [15] = new Option(“text15”,“25”);
...

这是你做的: 将第一行更改为text1 猛拉“text1”

create a macro (qq)
/text
dw
p
ctrl+a
b
vwly
q

然后,如果你有25行:做23 @ q

因为您手动完成了前两个操作,所以对宏进行了23次调用。