Текстовый редактор vim удобнейшая вещь, но я иногда забываю как в нем делать замену текста с подстановкой.
Например нам надо заменить во всем тексте BIT0 на _BV( 0 ), BIT1 на _BV( 1 ) и т.д.
Делать это вручную долго и муторно. И зачем себя мучить если в vim это можно сделать одной командой: %s/BIT\([0-9]*\)/_BV( \1 )/gc
Рассмотрим подробнее что означает этот набор символов.
Для замены текста в vim используется команда :substitute, укороченный вариант :s
Общий формат команды для замены текста в vim такой:
:{пределы}s/{что заменяем}/{на что заменяем}/{опции}
У нас заданы пределы символом % — это во всем файле, можно задать диапазон строк в которых будет производиться замена текста, например :4,7s/ будет осуществлять поиск и замену текста в строках с 4-й по 7-ю
BIT\([0-9]*\) — это то что мы заменяем
vim поддерживает регулярные выражения (regexp) , в данном случае мы их и используем .
[0-9] — один любой символ от 0 до 9
[0-9]* — любое количество указанных символов
Наше регулярное выражение помещаем в круглые скобки \( \), что бы указанная последовательность символов была запомнена, и мы могли использовать ее для подстановки.
_BV( \1 ) — это текст на который мы заменяем, вместо \1 будет вставлено запомненное значение.
Ключи для команды замены текста в vim: gc
g — применить ко всем совпадениям, если не указать это ключ то будет заменено только первое найденное совпадение.
с — запрашивать подтверждение замены.
редактор vim поистине гениальная вещь! для шизофреников, которые хотят марать мозг себе всякой фигней, когда можно открыть мастдайный блокнот и сделать всё тоже самое в два клика.. мне вас жалко! откройте для себя другой мир! лсд еще давно изобрели, одумайся!
Ну, каждому свое :)
А на счет тоже самое в два клика, это Вы, конечно, завернули, попробуйте вырезать вертикальный блок текста ;)
Люблю Блокнот я просто дико!
И ты попробуй как-нибудь —
Открыл его, всего два клика,
И он закрыт — ведь просто круть!
А в Vim’е этом — вот зараза!
И кликал, пукал, и рыгал,
Аж монитор лизал два раза,
А закрываться он не стал!
Бибикал Vim, меня стебая,
Видать, я здесь не ко двору,
Пойду-ка я в Блокнот мастдая,
Два раз кликну и умру.