Comment convertir tout le texte de Vim en minuscules? Est-ce même possible?
Comment convertir tout le texte de Vim en minuscules? Est-ce même possible?
Réponses:
Si vous voulez vraiment dire des petites majuscules , alors non, ce n'est pas possible - tout comme il n'est pas possible de convertir du texte en gras ou en italique dans n'importe quel éditeur de texte (par opposition au traitement de texte ). Si vous souhaitez convertir du texte en minuscules, créez un bloc visuel et appuyez sur u
(ou U
pour convertir en majuscules). Tilde ( ~
) en mode commande inverse la casse du caractère sous le curseur.
Si vous voulez voir tout le texte dans Vim en petites majuscules, vous voudrez peut-être regarder l' guifont
option ou taper :set guifont=*
si votre saveur Vim prend en charge le sélecteur de police GUI.
guu
mettra en minuscule une ligne et gu[motion]
mettra en minuscule la valeur du texte de ce mouvement. De même, gUU
et gU[motion]
travaillez de la même manière, uniquement pour les majuscules.
Je suppose que vous voulez mettre le texte en minuscules. La solution est assez simple:
ggVGu
Explication:
U
pour les majuscules (par exemple ggVGU
)
Semblable à la solution de Mangledorf, mais plus court et convivial pour les profanes
:%s/.*/\L&/g
:%s/.*/\L&
suffirait (pas besoin du g
drapeau car .*
sélectionne toute la ligne)
:%s/./\L&/g
, puisque / g / dénote une opération qui est globale pour la ligne. Mais ce qui m'attire, c'est le &
. Pourquoi est-ce nécessaire?
&
signifie ici what was matched by the pattern
, donc il peut être compris comme suit: remplacer .*
par \Lowercase(what was matched by the pattern)
. Notez que l'appariement à l' .
échelle mondiale est plus lent que l'appariement.*
De nombreuses façons d'écorcher un chat ... voici la façon dont je viens de poster :
:%s/[A-Z]/\L&/g
De même pour les majuscules:
:%s/[a-z]/\U&/g
Je préfère cette façon parce que j'utilise cette construction ( :%s/[pattern]/replace/g
) tout le temps donc c'est plus naturel.
:%s/./\U&/g
fonctionne également. Il s'avère qu'il ignore les chiffres et les caractères non alphabétiques. Ce qui m'attire, c'est le &
. Pourquoi \ U (ou \ L) n'est-il pas suffisant en soi? Pouvons-nous obtenir une explication à cela?
&
est un remplaçant pour la chaîne correspondante. \U&
Met donc en majuscule la chaîne correspondante afin qu'elle puisse être utilisée pour le remplacement.
Pour des exemples et plus d'informations, veuillez lire ceci: http://vim.wikia.com/wiki/Switching_case_of_characters
&
. \ L et \ U sont parfaitement logiques, mais pourquoi est-ce &
nécessaire?
utilisation ggguG
gg: va à la première ligne. gu: passer en minuscules. G: va à la dernière ligne.
Habituellement Vu(ou VUpour les majuscules) est suffisant pour transformer toute la ligne en minuscules, car elle Vsélectionne déjà toute la ligne pour laquelle appliquer l'action.
Tilda ( ~) change la casse de la lettre individuelle , ce qui entraîne une affaire de chameau ou similaire.
C'est vraiment formidable de voir comment Vim dispose de nombreux modes différents pour faire face à diverses occasions et comment ces modes sont soigneusement organisés.
Par exemple, v- le véritable mode visuel, et les modes de Vligne visuelle et Ctrl+ Q- visuels associés (ce qui vous permet de sélectionner des blocs, une grande fonctionnalité que certains autres éditeurs avancés offrent également généralement en maintenant la Alttouche enfoncée et en sélectionnant le texte).
Si vous utilisez une version d'Unix
:0,$!tr "[A-Z]" "[a-z]"
:%!tr A-Z a-z
!
indique une commande de shell externe, donc $ man tr
(par opposition à :help tr
) révèle que tr
c'est pour translate
.
:%0,$!tr [:upper:] [:lower:]