Как вычесть из числа после строки в VIM? - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь вычесть из чисел, следующих за строкой в ​​VIM, например, этот (искомый) ввод:

CustomModelData: 1

И мой предпочтительный (замененный) вывод:

CustomModelData: -2147483647

Число, которое я пытаюсь вычесть из чисел, равно 2147483648. Я пытался использовать это в VIM, но это не работает, так как в выражении есть строка, я хочусохранить строку, а также вычитать из числа, следующего за:

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

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Если каждое число находится на отдельной строке файла, вы можете сопоставить соответствующие строки и использовать для них оператор вычитания Ctrl + X:

:g/CustomModelData:/ norm 2147483648^X

(Для ^X введите Ctrl + X.)

0 голосов
/ 17 ноября 2018

Вы можете использовать следующую незначительную настройку, чтобы начало матча соответствовало номеру, поэтому замена видит только номер, чтобы настроить

%s/\vCustomModelData: \zs\d+/\=submatch(0)-2147483648/g
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...