Jak przekonwertować cały tekst w Vimie na małe litery? Czy to w ogóle możliwe?
Jak przekonwertować cały tekst w Vimie na małe litery? Czy to w ogóle możliwe?
Odpowiedzi:
Jeśli naprawdę masz na myśli małe litery , to nie, nie jest to możliwe - podobnie jak nie można przekonwertować tekstu na pogrubiony lub kursywą w dowolnym edytorze tekstu (w przeciwieństwie do edytora tekstu ). Jeśli chcesz przekonwertować tekst na małe litery, utwórz blok wizualny i naciśnij u(lub, Uaby przekonwertować na wielkie litery). Tilde ( ~) w trybie komend odwraca wielkość znaków pod kursorem.
Jeśli chcesz zobaczyć cały tekst w Vimie małymi literami, możesz zajrzeć do guifontopcji lub wpisać, :set guifont=*czy twój smak Vima obsługuje wybór czcionek GUI.
guuzmniejszy literę i gu[motion]zmniejszy wartość tekstu tego ruchu. Podobnie gUUi gU[motion]działają w ten sam sposób, tylko dla wielkich liter.
Zakładam, że chcesz mały tekst. Rozwiązanie jest dość proste:
ggVGu
Wyjaśnienie:
Una wielkie litery (np. ggVGU)
Podobne do rozwiązania mangledorfa, ale niższe i przyjazne dla laika
:%s/.*/\L&/g
:%s/.*/\L&wystarczyłoby (nie potrzebuję gflagi, ponieważ .*zaznacza całą linię)
:%s/./\L&/g, ponieważ / g / oznacza operację globalną dla linii. Tym, co mnie jednak przyciąga, jest &. Dlaczego to konieczne?
&oznacza tutaj what was matched by the pattern, więc można to rozumieć w następujący sposób: zastąp .*przez \Lowercase(what was matched by the pattern). Pamiętaj, że .globalne dopasowanie jest wolniejsze niż dopasowanie.*
Wiele sposobów na skórę kota ... oto sposób po prostu pisał o:
:%s/[A-Z]/\L&/g
Podobnie w przypadku wielkich liter:
:%s/[a-z]/\U&/g
Wolę tak, ponieważ :%s/[pattern]/replace/gcały czas używam tej konstrukcji ( ), więc jest to bardziej naturalne.
:%s/./\U&/gdziała również. Okazuje się, że ignoruje cyfry i znaki inne niż alfabet. To, co mnie przyciąga, to &. Dlaczego sam \ U (lub \ L) nie wystarczy? Czy możemy uzyskać wyjaśnienie?
&jest stand-in dla dopasowanego ciągu. Dlatego \U&wielką literę dopasowuje tak, aby można go było użyć do zamiany.
Aby uzyskać przykłady i więcej informacji, przeczytaj to: http://vim.wikia.com/wiki/Switching_case_of_characters
&. \ L i \ U mają sens, ale dlaczego jest to &konieczne?
posługiwać się ggguG
gg: przechodzi do pierwszej linii. gu: zmień na małe litery. G: przechodzi do ostatniej linii.
Zwykle Vu(lub VUwielkie litery) wystarczy, aby całą linię zamieniać na małe litery jakoV już zaznacza całą linię, aby zastosować akcję.
Tilda ( ~) zmienia wielkość liter pojedynczej litery , powodując wielbłąda lub podobną.
To naprawdę wspaniałe, jak Vim ma wiele różnych trybów radzenia sobie z różnymi okazjami i jak te tryby są uporządkowane.
Na przykład v- prawdziwy tryb wizualny i powiązane V- wizualna linia i Ctrl+ Q- wizualne tryby blokowania (co pozwala wybierać bloki, świetna funkcja, którą oferują inni zaawansowani edytorzy, zwykle przytrzymując Altklawisz i zaznaczając tekst).
Jeśli korzystasz ze smaku Uniksa
:0,$!tr "[A-Z]" "[a-z]"
:%!tr A-Z a-z
!Oznacza zewnętrzną powłokę, tak $ man tr(w przeciwieństwie do :help tr) ujawnia, że trjest translate.
:%0,$!tr [:upper:] [:lower:]