Czy istnieje przeciwieństwo: g in vim?


10

Wiem, jak zrobić coś z każdą linią pasującą do wzoru, używając :g. Czy istnieje sposób, aby zrobić coś dla każdej linii, która nie pasuje do wzorca?

Załóżmy na przykład, że chcę usunąć każdą linię, która nie pasuje do / foo /. Mógłbym zrobić coś takiego:

:G/foo/d

( :Gnie jest przeciwieństwem :g, ale tego właśnie szukam)

Jakieś pomysły?


2
miv ni g:.
tsilb

Odpowiedzi:


17

Myślę, że w VIM występuje inwersja, ponieważ

:g!/foo/d

lub, podobnie jak greppolecenie (poniżej),

:v/foo/d

Jeśli jesteś gotowy, aby przejść do monitu powłoki,

grep -v foo filename.txt > new.txt

zrobi to

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.