Vim 保存';变量';在正则表达式中搜索并替换

Vim 保存';变量';在正则表达式中搜索并替换,vim,Vim,在Vim中,我想进行搜索和替换,包括: [0-9]* 在“替换”部分,我希望在这个模糊范围内的任何东西都能被继承和使用 例如,假设我有: getNumber(42).roundToTenth(); getNumber(43).roundToTenth(); getNumber(44).roundToTenth(); getNumber(45).roundToTenth(); getNumber(46).roundToTenth(); getNumber(47).roundToTenth();

在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();

我该怎么做

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

s/[0-9]\(.*\)/\1/
\1
将是捕获的任何内容。根据需要更改替换表达式

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

您真的要对此使用搜索/替换吗

就我个人而言,我宁愿做一些像:%g/Number/norm这样的事情^~我没有^[fT2sDown^[


使用带有q[寄存器]的记录,并用c-r[寄存器]填充norm!之后的部分

谢谢!但是你介意多给我一个……外行的解释吗。看起来你回答了我需要的,但我不能说我完全理解或能够实现。@bzupnick给我一个输入和输出示例,我会为你编写表达式。
vim
不是一个真正的外行工具,不过……你应该查找你不知道的东西理解像
backreference
substitution
可能我知道我有很多东西要学;)我在一个简单的例子中编辑了做两个简单的替换是否符合你的标准?
:%s/get/DontGet/|%s/to/Down