Добавьте постоянную величину к числам, соответствовавшим регулярному выражению, с помощью энергии (gvim).
Следующее регулярное выражение будет соответствовать width="32"
:
/width="\([0-9]\{2\}\)"
Как Вы заменяете числовое значение width
атрибут с результатами математического выражения, которое использует значение атрибута? Например, я хотел бы выполнить следующую глобальную замену:
:%s/width="\([0-9]\{2\}\)"/width="\1+10"/g
Это произвело бы width="42"
для width="32"
и width="105"
для width="95"
.
Спасибо!
Чтобы сделать вычисление выражения в замене, см.:
:help :s\=
:help submatch()
Например:
:%s/width="\([0-9]\{2\}\)"/\='width="'.(submatch(1)+10).'"'/g
Когда Вы делаете замену выражения, вся замена должна быть выражением, таким образом, необходимо конкатенировать (см. :help expr-.
) три элемента выражения. Сломанный:
\=
Укажите, что заменяющий шаблон является выражением.
'width="'
Первая строка.
(submatch(1) + 10)
Добавьте десять к первому sub-pattern-match — включенный в круглую скобку, таким образом, Vim не пытается включать предыдущую строку в операцию сложения.
'"'
Заключительная кавычка как строка.
(Обратите внимание, что я не включал операторы конкатенации в разбивку.)