Найдите строку и добавьте строку в vi / vim - PullRequest
16 голосов
/ 27 января 2012

Я пытаюсь отредактировать файл конфигурации и хочу добавить определенную строку кода (на новую строку) всякий раз, когда определенная строка соответствует ... все, что я искал, выполняет поиск и замену, я ищу для поиска и добавления ...

Ответы [ 3 ]

16 голосов
/ 27 января 2012

лично, я думаю, что использование команды ": g", вероятно, лучше, чем ": s" для этой проблемы.

:g/key/norm owhat ever you want

сделает текст:

foo
bar
key
foo2
bar2
key2
blah

to:

foo
bar
key
what ever you want
foo2
bar2
key2
what ever you want
blah

Если вы хотите добавить новую строку над строкой, содержащей шаблон, просто измените маленькое «o» на «O».

14 голосов
/ 27 января 2012

In vim \r - это новая строка. Так что вы можете сделать что-то вроде этого

%s/search string/&\rnew code/
0 голосов
/ 27 января 2012

Вот что я бы сделал:

:g/specific string/s/.*/&specific line of code

Команда g извлекает все строки, содержащие specific string, а затем применяет команду s substitute к этим строкам.Команда s заменяет всю строку ее содержимым плюс specific line of code

HTH

...