vim: замена текста с подстановкой

Текстовый редактор 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 с метками , . Добавьте в закладки постоянную ссылку.

3 комментария: vim: замена текста с подстановкой

  1. r0mepbi4 говорит:

    редактор vim поистине гениальная вещь! для шизофреников, которые хотят марать мозг себе всякой фигней, когда можно открыть мастдайный блокнот и сделать всё тоже самое в два клика.. мне вас жалко! откройте для себя другой мир! лсд еще давно изобрели, одумайся!

  2. Артём Двинин говорит:

    Ну, каждому свое :)
    А на счет тоже самое в два клика, это Вы, конечно, завернули, попробуйте вырезать вертикальный блок текста ;)

  3. Olga говорит:

    Люблю Блокнот я просто дико!
    И ты попробуй как-нибудь —
    Открыл его, всего два клика,
    И он закрыт — ведь просто круть!

    А в Vim’е этом — вот зараза!
    И кликал, пукал, и рыгал,
    Аж монитор лизал два раза,
    А закрываться он не стал!

    Бибикал Vim, меня стебая,
    Видать, я здесь не ко двору,
    Пойду-ка я в Блокнот мастдая,
    Два раз кликну и умру.

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>