Comment convertir tout le texte de Vim en minuscules? Est-ce même possible?
vim
text-processing
ksuralta
la source
la source
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
(ouU
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.la source
guu
mettra en minuscule une ligne etgu[motion]
mettra en minuscule la valeur du texte de ce mouvement. De même,gUU
etgU[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:
Explication:
la source
U
pour les majuscules (par exempleggVGU
)Semblable à la solution de Mangledorf, mais plus court et convivial pour les profanes
:%s/.*/\L&/g
la source
:%s/.*/\L&
suffirait (pas besoin dug
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 iciwhat 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.*
utiliser cette option de mode de commande
la source
De nombreuses façons d'écorcher un chat ... voici la façon dont je viens de poster :
De même pour les majuscules:
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.la source
:%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
la source
&
. \ 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.
la source
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).
la source
Si vous utilisez une version d'Unix
la source
:%!tr A-Z a-z
!
indique une commande de shell externe, donc$ man tr
(par opposition à:help tr
) révèle quetr
c'est pourtranslate
.:%0,$!tr [:upper:] [:lower:]
J'ai eu un problème similaire et je voulais l'utiliser
":%s/old/new/g"
, mais j'ai fini par utiliser deux commandes:la source