Vim поиск шаблона и, если происходит, удалить до конца строки - PullRequest
37 голосов
/ 20 февраля 2009

Я пытаюсь найти в текстовом файле определенный шаблон. Если этот шаблон встречается, это означает, что остальная часть строки не нужна и, следовательно, может быть удалена.

Я пытался использовать следующие команды, но пока безуспешно.

:%s/{pattern}/d$

:g/{pattern}/d$

Если у кого-то есть какие-либо предложения, они будут очень признательны

Ответы [ 4 ]

58 голосов
/ 20 февраля 2009

будет :%s/{pattern}.*// работать?

32 голосов
/ 20 февраля 2009

В качестве альтернативы, следующее также работает

:g/{pattern}/normal nd$

За то, что вы хотите, я бы пошел с предложением Мирод. То, что я опубликовал, немного более гибко и может пригодиться в подобных ситуациях.

Пояснение:

В каждой строке, где соответствует шаблон, выполните следующие команды обычного режима 'nd $'. Когда курсор находится в начале строки, «n» переходит к шаблону, а «d $» удаляет до конца строки.

3 голосов
/ 16 сентября 2017

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

:1,$s/pattern.*//g
0 голосов
/ 13 января 2011
%s/\\(replay-pattern-later\\) pattern2/\1/gc

Это воспроизведет pattern1, но исключит pattern2. Использование "/ gc" для глобального применения (продолжайте) и подсказки для каждого случая.

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