Вообще vim - это настолько необъятная вещь, что не зависимо от того, сколько лет с ним работаю, каждый раз нахожу что-то новое и новое! Так что оставлю тут эту запись, что бы не забыть очередное "колдунство" с помощью этого редактора. ;)
Речь пойдет о странном регистре @= и не менее странно комбинации i^R ;) Да что тут говорить, вот пример:
clock.tick(20)
Нам надо поменять число на разницу между ним и 15 (надумано, но что бы показать идею - пойдет). Далее нажимаем:
/33<CR>dei^R=^R"-15<CR><ESC>
И вуаля! :) Объясняю:
/33 - ищем число
de - удаляем его (оно оказывается в регистре @")
^R= - это Crtl + R потом = (попадаем в режим ввода выражения)
^R" - вставка из регистра @"
-15 - собственно вычитаем 15 :)
Ну и выходим из режима редактирования.
Как я уже сказал пример "притянут за уши", но работа с этим регистром - вещь очень нужная. Ладно тут я решил одно число поменять. А если бы мне надо было в 1000 стоках из разных чисел вычесть/прибавить/умножить/разделить? Воот! То то и оно. :)
P.S. К стати еще один вариант решения вопроса, который я не знал. :) Тоже надо запомнить! ;)
:% s/20/\=submatch(0)-15/
P.S. К стати еще один вариант решения вопроса, который я не знал. :) Тоже надо запомнить! ;)
:% s/20/\=submatch(0)-15/
Вот это круть!!! Спасибо!! :)
ОтветитьУдалить