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”?
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”?
Odpowiedzi:
Możesz użyć
:%g!/price/d
aby usunąć każdy wiersz, który nie zawiera „ceny”
:g!
jest również znany jako :v
(podobny do grep -v
).
%
zrobić?
%
to specjalny zakres w tym kontekście, który oznacza cały plik. Zobaczyć :help cmdline-ranges
.
%
jest opcjonalny, ponieważ domyślnym zakresem jest cały bufor.
Możesz także użyć:
:v/price/d
aby usunąć linie.
g
to,v
że jest „globalny” i „odwrotny” (jeśli wierzysz w to, co czytasz na vim.famdom).
help :v
in vim to potwierdza
%!grep "price"
to kolejna opcja, która może być znacznie szybsza niż w :v
przypadku dużych plików.
Przetestowano na pliku dziennika linii Vim 7.4, Ubuntu 14.04, 1M.
Linie zawierające słowo: https://stackoverflow.com/questions/1725265/how-can-i-delete-all-lines-that-do-not-begin-with-certain-characters/42714334#42714334