Есть ли противоположность: g в vim?

1416
pkaeding

Я знаю, как сделать что-то для каждой строки, которая соответствует шаблону, используя :g. Есть ли способ сделать что-то для каждой строки, которая не соответствует шаблону?

Например, предположим, что я хочу удалить каждую строку, которая не соответствует / foo /. Я мог бы сделать что-то вроде:

:G/foo/d 

( :Gне противоположность :g, но это то, что я ищу)

Есть идеи?

9
MIV NI G:. tsilb 14 лет назад 2

1 ответ на вопрос

17
nik

Я думаю, что есть инверсия в VIM, как,

:g!/foo/d 

или, как grepкоманда (ниже),

:v/foo/d 

Если вы готовы перейти к приглашению оболочки,

grep -v foo filename.txt > new.txt 

сделаю это