Zastanawiam się, czy istnieje sposób na policzenie wyróżnionych symboli vim
(w tym białych spacji)?
AKTUALIZACJA
Pokazuje liczbę wierszy, jeśli mój wybór dotyczy wielu wierszy. Potrzebuję symboli.
O ile mi czegoś nie brakuje, Vim już to robi. Jeśli zaznaczę jakiś tekst za pomocą myszy lub wpisując v
i przesuwając kursor, widzę u dołu ekranu
- WIZUALNE - 12
gdzie liczba po prawej to liczba wyróżnionych znaków. Działa to tylko wtedy, gdy zaznaczenie jest w jednym wierszu, w przeciwnym razie pokazuje liczbę wierszy.
Możesz także wizualnie wybrać region i typ tekstu, g Ctrl-Gktóry pokaże liczbę wybranych wierszy, słów i bajtów.
set showcmd
do swojego,vimrc
aby go włączyć.Vim przełącza się między wyświetlaniem liczby znaków a liczbą wierszy dla wyświetlanego tekstu w zależności od tego, co i jak wizualizujesz (vim 7.4 załatany do września 2015)
Jeśli wizualizujesz więcej niż jedną linię, wyświetla tylko liczbę linii
źródło
v
przełączanie z liczby znaków na liczbę wierszy, jeśli zaznaczenie obejmuje wiele linii. Jednakg CTRL-G
dobrze się spisuje.Najpierw szarpniesz bieżący wybór (do bufora x)
Następnie wyświetlasz długość tego bufora:
strlen(@x)
( - VISUAL - wyświetlany w wierszu stanu przesłania to, więc musimy dodać nowy wiersz)
Podkreśl poprzedni zakres wizualny:
gv
Nie uwzględnia to, czy trybem wizualnym był tryb liniowy, znakowy czy blokowy, ale w większości przypadków wystarcza.
źródło
Z twojego zrzutu ekranu widzę, że korzystasz z systemu Windows, więc ta odpowiedź może ci nie pomóc. Ale dla innych ...
Niedostatecznie używana (IMO) funkcja Vima polega na tym, że zewnętrzne polecenia wykonują ciężkie podnoszenie.
W tym przypadku, jeśli korzystasz z systemu typu UNIX, możesz to zrobić za pomocą
wc
polecenia.Najprostszym sposobem jest zastąpienie zaznaczonego tekstu wynikiem polecenia, wpisując (z zaznaczonym tekstem):
(następnie naciśnij enter).
To pokaże w linii poleceń jako:
Po przeczytaniu informacji możesz cofnąć,
u
aby wrócić do miejsca rozpoczęcia.Uwaga: Przetwarzanie odbywa się tylko na całych liniach . Jeśli chcesz częściowe linie, myślę, że @ garyjohn's
g_CTRL-G
jest najlepszym wyborem .Możesz uniknąć konieczności cofania, uruchamiając zamiast tego:
Spowoduje to „zapisanie” wybranych wierszy do standardowego wejścia polecenia, a wynik polecenia zostanie wyświetlony w nowym buforze tymczasowym, pozostawiając oryginał niezmieniony. Zobacz
:help :write_c
więcej informacji.Uwaga: Mam
:write_c
informacje od: /programming/1237780/vim-execute-shell-command-without-filteringTeraz bardziej ogólnie:
Ten przykład z
wc
jest dość uproszczony, ale możesz sobie wyobrazić, jak to jest potężne podejście. W systemie UNIX dostępnych jest już wiele poleceń przetwarzania tekstu i można ich używać w Vimie dość łatwo, bez konieczności dotykania Vimscript (yech).Co więcej, każdy napisany przez ciebie program wiersza poleceń, który zajmuje się stdin / stdout, może teraz przynieść korzyści nie tylko na twoim terminalu, ale także w Vimie.
Uważam się na przykład za uruchomionego
tidy
ijson-format
od wewnątrz vima, aby pliki, na które patrzę, były bardziej czytelne.Możesz zrobić to samo w systemie Windows, ale system Windows nie ma wbudowanego tak bogatego zestawu poleceń. Jednak zawsze możesz zainstalować GNUWin32 lub podobny, aby uzyskać te korzyści.
źródło
Dla programowego sposobu w vimscript działało to dla mnie, gdy wybór jest ograniczony do jednego wiersza:
(Używanie
virtcol(..)
zamiastcol(..)
, aby:set ve=all
działało zgodnie z oczekiwaniami, gdy jest aktywne).źródło