Вы можете использовать оператор отрицательного просмотра @<!
, например. чтобы найти все строки, не содержащие «a», используйте /\v^.+(^.*a.*$)@<!$
(\v
просто приводит к тому, что некоторые операторы, такие как (
и @<!
, не должны быть экранированы обратной косой чертой)
более простой метод - удалить все строки, соответствующие или не соответствующие шаблону (:g/PATTERN/d
или :g!/PATTERN/d
соответственно)
Я часто в вашем случае, поэтому, чтобы «почистить» файлы журналов, которые я использую:
:g/all is ok/d
Ваше grep -v
может быть достигнуто с помощью
:v/error/d
, который будет удалить все строки, которые не содержат ошибку .
Я только что выполнил процедуру klutzy, используя команду "g":
:%g!/search/p
Это говорит о том, что нужно распечатать несоответствующие строки ... не уверен, что это сработало, но в итоге получилось с курсором, расположенным на первой несовпадающей строке.
(замените какую-нибудь другую строку на «поиск», конечно)
Я считаю, что если вы просто хотите, чтобы ваш курсор оказался в первой несовпадающей строке, вы можете использовать visual как команду в своей глобальной команде. Итак:
:v/pattern/visual
оставит ваш курсор на первой несовпадающей строке. Или:
:g/pattern/visual
оставит ваш курсор на первой совпадающей строке.