Jak przekonwertować cały tekst w Vimie na małe litery? Czy to w ogóle możliwe?
vim
text-processing
ksuralta
źródło
źródło
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,U
aby 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
guifont
opcji lub wpisać,:set guifont=*
czy twój smak Vima obsługuje wybór czcionek GUI.źródło
guu
zmniejszy literę igu[motion]
zmniejszy wartość tekstu tego ruchu. PodobniegUU
igU[motion]
działają w ten sam sposób, tylko dla wielkich liter.Zakładam, że chcesz mały tekst. Rozwiązanie jest dość proste:
Wyjaśnienie:
źródło
U
na wielkie litery (np.ggVGU
)Podobne do rozwiązania mangledorfa, ale niższe i przyjazne dla laika
:%s/.*/\L&/g
źródło
:%s/.*/\L&
wystarczyłoby (nie potrzebujęg
flagi, 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 tutajwhat 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.*
użyj tej opcji trybu poleceń
źródło
Wiele sposobów na skórę kota ... oto sposób po prostu pisał o:
Podobnie w przypadku wielkich liter:
Wolę tak, ponieważ
:%s/[pattern]/replace/g
cały czas używam tej konstrukcji ( ), więc jest to bardziej naturalne.źródło
:%s/./\U&/g
dział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
źródło
&
. \ 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.
źródło
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).
źródło
Jeśli korzystasz ze smaku Uniksa
źródło
:%!tr A-Z a-z
!
Oznacza zewnętrzną powłokę, tak$ man tr
(w przeciwieństwie do:help tr
) ujawnia, żetr
jesttranslate
.:%0,$!tr [:upper:] [:lower:]
Miałem podobny problem i chciałem go użyć
":%s/old/new/g"
, ale ostatecznie użyłem dwóch poleceń:źródło