首页 > 解决方案 > 如何从 VIM 中字符串后面的数字中减去?

问题描述

我试图从 VIM 中的字符串后面的数字中减去,例如这个(搜索的)输入:

CustomModelData: 1

而我的首选(替换)输出:

CustomModelData: -2147483647

我试图从数字中减去的数字是 2147483648。我尝试在 VIM 中使用它,但它不起作用,因为表达式中有一个字符串,我想保留字符串,同时从后面的数字中减去:

:%s/CustomModelData: \d\+/\=/CustomModelData: submatch(0)-2147483648/g

标签: vim

解决方案


您可以使用以下小调整使匹配从数字开始,因此替换只能看到要调整的数字

%s/\vCustomModelData: \zs\d+/\=submatch(0)-2147483648/g

推荐阅读