Existe um oposto de: g no vim?

10

Eu sei como fazer algo para cada linha que corresponde a um padrão, usando :g. Existe uma maneira de fazer algo em cada linha que não corresponde ao padrão?

Por exemplo, suponha que eu queira excluir todas as linhas que não correspondam a / foo /. Eu poderia fazer algo como:

:G/foo/d

( :Gnão é o oposto :g, mas é isso que estou procurando)

Alguma ideia?

pkaeding
fonte
2
miv ni g:.
tsilb

Respostas:

17

Eu acho que há uma inversão no VIM como,

:g!/foo/d

ou, como o grepcomando (abaixo),

:v/foo/d

Se você estiver pronto para ir para o prompt do shell,

grep -v foo filename.txt > new.txt

vai fazer isso

nik
fonte