Найдите первый несогласующий отрезок длинной линии в VIM

24
задан Dummy00001 23 June 2010 в 13:10
поделиться

4 ответа

Вы можете использовать оператор отрицательного просмотра @<!

, например. чтобы найти все строки, не содержащие «a», используйте /\v^.+(^.*a.*$)@<!$

(\v просто приводит к тому, что некоторые операторы, такие как ( и @<!, не должны быть экранированы обратной косой чертой)

более простой метод - удалить все строки, соответствующие или не соответствующие шаблону (:g/PATTERN/d или :g!/PATTERN/d соответственно)

16
ответ дан 28 November 2019 в 23:04
поделиться

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

:g/all is ok/d

Ваше grep -v может быть достигнуто с помощью

:v/error/d

, который будет удалить все строки, которые не содержат ошибку .

7
ответ дан 28 November 2019 в 23:04
поделиться

Я только что выполнил процедуру klutzy, используя команду "g":

:%g!/search/p

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

(замените какую-нибудь другую строку на «поиск», конечно)

2
ответ дан 28 November 2019 в 23:04
поделиться

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

:v/pattern/visual

оставит ваш курсор на первой несовпадающей строке. Или:

:g/pattern/visual

оставит ваш курсор на первой совпадающей строке.

22
ответ дан 28 November 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: