vim: заменить шаблон линии на строку без - PullRequest
7 голосов
/ 05 мая 2011

Я пытаюсь выполнить простую замену на vim, но не могу сделать это правильно. Мне нужно удалить на весь файл все строки, которые соответствуют шаблону. Шаблон - это «что-то *», что означает «что-то», за которым следует что-либо до конца строки Я пытался :%s/pattern*\n//g и :%s/pattern*$//g безуспешно. Есть идеи?

Ура! * * 1005

Ответы [ 2 ]

6 голосов
/ 05 мая 2011

Использование :g вместо :substitute.

:g/pattern/d

удалит все линии, соответствующие шаблону.

Что касается шаблона, то ваши совпадения будут соответствовать patter,pattern, patternn и так далее.Используйте подстановочный знак . для соответствия любым символам.Таким образом, ваше регулярное выражение должно быть pattern.*$ --- но если вы хотите полностью удалить строки, :g/pattern/d отлично справится с задачей.

0 голосов
/ 05 мая 2011

В зависимости от используемой версии vim у вас могут возникнуть проблемы с тем, что я собираюсь предложить:

:%s/pattern.*^V^M//g

Для ^V буквально нажмите ctrl-v, а затем клавишу ENTER (^ M). ^V позволяет вводить буквенный символ без его интерпретации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...