Глобальная команда Vim, чтобы каждая строка, содержащая символ, начиналась со слова - PullRequest
2 голосов
/ 13 февраля 2012

Рассмотрим следующий текстовый файл:

something
something
something = someother thing
other thing = third thing
another thing = forth thing

Я хочу, чтобы он выглядел следующим образом:

something
something
keyword something = someother thing
keyword other thing = third thing
keyword another thing = forth thing

, чтобы в каждую строку я добавлял ключевое слово, содержащее равныесимвол в нем.Могу ли я сделать это с помощью глобальной команды, или как вы рекомендуете делать это?

Ответы [ 2 ]

6 голосов
/ 13 февраля 2012
:g/=/s/^/keyword /

или

:g/=/normal ikeyword

Обратите внимание на пробел после "ключевого слова"

Для этого типа проблемы также довольно часто используется решение, подобное:

:%!sed '/=/s/^/keyword /'
0 голосов
/ 13 февраля 2012

Я не совсем уверен, чего вы пытаетесь достичь.Ваш заголовок предлагает общий шаблон, но я не вижу его в вашем примере.Итак, я покажу вам оба.

Внесение изменений в вещи по общему шаблону

Вы можете выполнить поиск и заменить следующим:

:s/<regex you are searching for>/<string to replace with>/g

s/pattern/replacement/выполняет поиск и замену, и дополнительная буква g будет распространяться на изменения

Многострочное редактирование

Vim также позволяет редактировать несколько строк одновременно.Допустим, вы хотите отредактировать следующие три строки:

something = someother thing
other thing = third thing
another thing = fourth thing
  1. Наведите курсор на s в первой строке something.
    Нажмите <ctrl>-v вне режима вставки, чтобыперейдите в визуальный режим.
  2. Прокрутите вниз до a в нижней строке.Все три начальных символа всех трех строк должны быть выделены.
  3. Нажмите A для добавления или I для непосредственного входа в режим вставки и начала ввода.Когда вы нажмете escape, ваши изменения должны отражаться!Вы также можете выполнять другие команды, такие как y и d и т. Д.
...