Jak usunąć wszystkie wiersze, które NIE zawierają określonego słowa w Vimie?


116

W vimie mogę z tym usunąć wszystkie wiersze zawierające słowo „cena”

:g /price/d

Jak mogę usunąć wszystkie wiersze, które NIE zawierają słowa „cena”?


1
Czy to pytanie można przenieść na vi.stackexchange.com ? Próbowałem oflagować go do migracji, ale nie mogłem tego rozgryźć.
Mu Mind

@MuMind Tu jest temat, więc nie ma potrzeby migracji . „ Nie przeprowadzaj migracji ze względu na migrację. Migrujemy pytania tylko dlatego, że są one nie na temat w oryginalnej witrynie . Pytanie może dotyczyć wielu tematów, ale nie jest to powód do migracji w innym miejscu, chyba że PO zażąda migracji. ” Ponadto tylko pracownicy SE mogą migrować po 60 dniach i bardzo rzadko to robią (nawet moderatorzy nie mogą migrować starego pytania).
8bittree

Odpowiedzi:


157

Możesz użyć

:%g!/price/d

aby usunąć każdy wiersz, który nie zawiera „ceny”


3
Wiedziałem, że to będzie łatwe ...
digitaljoel

35
:g!jest również znany jako :v(podobny do grep -v).
Chris Johnsen

3
Czego %zrobić?
hippietrail

4
%to specjalny zakres w tym kontekście, który oznacza cały plik. Zobaczyć :help cmdline-ranges.
Heptyt

1
%jest opcjonalny, ponieważ domyślnym zakresem jest cały bufor.
stillanoob


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.