保留变量'在正则表达式搜索和替换

时间:2014-04-30 13:23:17

标签: vim

在Vim中,我想进行搜索和替换,包括:

[0-9]*

在替换部分,我希望在这个模糊范围内的任何东西都可以继续使用。

例如,让我说我有这个:

getNumber(42).roundToTenth();
getNumber(43).roundToTenth();
getNumber(44).roundToTenth();
getNumber(45).roundToTenth();
getNumber(46).roundToTenth();
getNumber(47).roundToTenth();

并希望进行搜索并将其更改为

DontGetNumber(42).roundDownTenth();
DontGetNumber(43).roundDownTenth();
DontGetNumber(44).roundDownTenth();
DontGetNumber(45).roundDownTenth();
DontGetNumber(46).roundDownTenth();
DontGetNumber(47).roundDownTenth();

我该怎么做?

2 个答案:

答案 0 :(得分:2)

我想也许你的意思是[0-9].*(数字后跟零个或多个字符)。您可以使用捕获括号并在替换中使用反向引用。

s/[0-9]\(.*\)/\1/

\1将是捕获的内容。根据需要更改替换表达式。

s/getNumber(\([0-9]*\)).*/DontGetNumber(\1).roundDownTenth();

答案 1 :(得分:0)

您真的想使用搜索/替换吗?

个人而言,我宁愿做类似的事:%g / Number / norm! ^〜IDont ^ [fT2sDown ^ [

使用带q [register]的记录并在规范后填写部分!用c-r [register]