我试图从VIM中字符串后面的数字中减去,例如此(搜索到的)输入:
CustomModelData: 1
和我首选的(替换后的)输出:
CustomModelData: -2147483647
我要从数字中减去的数字是2147483648。我尝试在VIM中使用它,但是由于表达式中有一个字符串,所以它不起作用,我想保留该字符串,同时还要从中减去随后的数字:
:%s/CustomModelData: \d\+/\=/CustomModelData: submatch(0)-2147483648/g
答案 0 :(得分:2)
您可以使用以下较小的调整使比赛从数字开始,这样替换者只会看到要调整的数字
%s/\vCustomModelData: \zs\d+/\=submatch(0)-2147483648/g
答案 1 :(得分:0)
如果每个数字都在文件的单独一行中,那么您可以匹配相关行并对其使用Ctrl
+ X
减法运算符:
:g/CustomModelData:/ norm 2147483648^X
(对于^X
,输入Ctrl
+ X
。)