Come si converte tutto il testo in Vim in minuscolo? È anche possibile?
Come si converte tutto il testo in Vim in minuscolo? È anche possibile?
Risposte:
Se intendi davvero maiuscoletto , allora no, questo non è possibile - proprio come non è possibile convertire il testo in grassetto o corsivo in qualsiasi editor di testo (al contrario dell'elaboratore di testi ). Se vuoi convertire il testo in minuscolo, crea un blocco visivo e premi u(o Uper convertire in maiuscolo). Tilde ( ~) in modalità comando inverte il caso del carattere sotto il cursore.
Se vuoi vedere tutto il testo in Vim in maiuscolo, potresti voler guardare l' guifontopzione, o digitare :set guifont=*se il tuo sapore Vim supporta il selettore di caratteri della GUI.
guuminuscola una linea e gu[motion]minuscola il testo di quel movimento. Allo stesso modo, gUUe gU[motion]funziona allo stesso modo, solo in maiuscolo.
Presumo che tu voglia il testo in minuscolo. La soluzione è piuttosto semplice:
ggVGu
Spiegazione:
Umaiuscolo per maiuscolo (es. ggVGU)
Simile alla soluzione di Mangledorf, ma più breve e amichevole per i non addetti ai lavori
:%s/.*/\L&/g
:%s/.*/\L&basterebbe (non serve la gbandiera poiché .*seleziona l'intera linea)
:%s/./\L&/g, poiché / g / indica un'operazione globale per la linea. Quello che mi prende, però, è il &. Perché è necessario?
&sta qui per what was matched by the pattern, quindi può essere compreso come segue: sostituire .*con \Lowercase(what was matched by the pattern). Nota che la corrispondenza a .livello globale è più lenta della corrispondenza.*
Molti modi per scuoiare un gatto ... ecco il modo in cui ho appena pubblicato :
:%s/[A-Z]/\L&/g
Allo stesso modo per le maiuscole:
:%s/[a-z]/\U&/g
Preferisco così perché sto usando questo costrutto ( :%s/[pattern]/replace/g) continuamente, quindi è più naturale.
:%s/./\U&/gfunziona anche. Si scopre che ignora numeri e caratteri non alfabetici. Quello che mi prende è il &. Perché \ U (o \ L) da solo non basta? Possiamo avere una spiegazione per questo?
&è uno stand-in per la stringa corrispondente. In questo modo viene \U&capitalizzata la stringa corrispondente in modo che possa essere utilizzata per la sostituzione.
Per esempi e maggiori informazioni, leggi questo: http://vim.wikia.com/wiki/Switching_case_of_characters
&. \ L e \ U hanno perfettamente senso, ma perché è &necessario?
uso ggguG
gg: passa alla prima riga. gu: cambia in minuscolo. G: passa all'ultima riga.
Di solito Vu(o VUmaiuscolo) è sufficiente trasformare l'intera linea in minuscolo comeV già seleziona l'intera linea per applicare l'azione.
Tilda ( ~) cambia il caso della singola lettera , con conseguente caso di cammello o simile.
È davvero fantastico come Vim abbia molte modalità diverse per gestire le varie occasioni e come queste modalità siano organizzate in modo ordinato.
Ad esempio, v- la vera modalità visiva e le relative V- linea visiva e Ctrl+ Q- modalità di blocco visivo (ciò che consente di selezionare i blocchi, una grande funzionalità offerta da altri editor avanzati di solito tenendo premuto il Alttasto e selezionando il testo).
Se corri con un sapore Unix
:0,$!tr "[A-Z]" "[a-z]"
:%!tr A-Z a-z
!indica un comando esterno di shell, quindi $ man tr(a differenza :help tr) rivela che trè per translate.
:%0,$!tr [:upper:] [:lower:]