Odpowiedzi:
:g/xxxx/d
Spowoduje to usunięcie wszystkich linii ze wzorem i poinformowanie o liczbie usuniętych. Cofnij, aby odzyskać je później.
Sposób jest
:% s / wzór // gn
Potrzebujesz nflagi. Aby policzyć słowa, użyj:
:%s/\i\+/&/gn
i konkretne słowo:
:%s/the/&/gn
Zobacz count-itemssekcję dokumentacji.
Jeśli po prostu wpiszesz:
%s/pattern/pattern/g
wtedy linia statusu poda również liczbę dopasowań w vi.
(podobnie jak powiedział Gustavo, ale dodatkowo :)
W przypadku każdego wcześniejszego wyszukiwania możesz po prostu:
:%s///gn
Wzorzec nie jest potrzebny, ponieważ znajduje się już w rejestrze wyszukiwania ( @/).
"%" - wykonaj s/w całym pliku
"g" - przeszukaj globalnie (z wieloma trafieniami w jednej linii)
"n" - zapobiega jakiejkolwiek zamianie s/- nic nie jest usuwane! nic nie może zostać cofnięte!
(zobacz: :help s_flagwięcej informacji)
(W ten sposób doskonale współpracuje z „ Wyszukaj wizualnie wybrany tekst ”, jak opisano w vim-wikia tip171 )
posługiwać się
:% s / wzór / \ 0 / g
gdy ciąg wzorca jest za długi i nie chcesz go wpisywać ponownie.
Krótka odpowiedź :
:% s / ciąg-do-przeszukiwania // gn
Do nauki :
Istnieją 3 tryby w edytorze VI, jak poniżej

:wchodzisz Commandw Command-linetryb od do . Teraz cokolwiek piszesz, :znajduje się w CLI (interfejs wiersza poleceń)%sokreśla wszystkie linie. Określenie zakresu jako %środków powoduje podstawienie w całym pliku. Składnia podstawiania wszystkich wystąpień to:%s/old-text/new-text/ggokreśla wszystkie wystąpienia w wierszu. Za pomocą gflagi możesz zastąpić całą linię. Jeśli ta gflaga nie jest używana, tylko pierwsze wystąpienie w linii zostanie zastąpione.n określa liczbę wystąpień //podwójny ukośnik oznacza pominięcie replacement text. Ponieważ po prostu chcemy znaleźć.Po uzyskaniu liczby wystąpień możesz nacisnąć Nklawisz, aby wyświetlić wystąpienia pojedynczo.
Aby znaleźć i policzyć w określonym zakresie linii od 1 do 10:
: 1,10s / cześć // gn
%że cały plik jest zastępowany ,oddzielnymi numerami wierszy. W celu znalezienia i zastąpienia w określonym zakresie linii od 1 do 10:
: 1,10s / helo / hello / gn
Proponuję zrobić:
*aby wykonać „wyszukiwanie ograniczone” dla tego, co jest pod kursorem, lub przeprowadź standardowe /patternwyszukiwanie.:%s///gnaby uzyskać liczbę wystąpień. Lub możesz użyć, :%s///naby uzyskać liczbę wierszy ze wystąpieniami.** Naprawdę mogłem znaleźć wtyczkę, która przy każdym wyszukiwaniu wyświetlałaby komunikat „dopasuj N z N 1 w N 2 liniach”, ale niestety.
Uwaga: nie daj się zmylić zawiłym sformułowaniem wyniku. Pierwsze polecenie może dać ci coś w rodzaju 4 matches on 3 linestego, co może ci dać drugie 3 matches on 3 lines. Choć technicznie dokładny, ten ostatni jest mylący i powinien mówić „Dopasowanie 3 wierszy”. Tak więc, jak widać, naprawdę nigdy nie ma potrzeby używania tej drugiej (tylko „n”) formy. Otrzymasz te same informacje, jaśniej i więcej, korzystając z formularza „gn”.
:g/xxxx/d) jest okropna, niebezpieczna i gorsza od innych na tej stronie. Odznacz to.