Voir http://vim.wikia.com/wiki/Changing_case_with_regular_expressions
Il explique les modificateurs \ U, \ L, \ u, \ l assez clairement et succinctement!
Son essence est la suivante:
Il peut arriver que vous souhaitiez parcourir un fichier et modifier la casse des caractères correspondant à certains critères arbitraires. Si vous comprenez bien les expressions régulières, vous pouvez le faire assez facilement.
C'est aussi simple que de placer \ U ou \ L devant les références arrières dont vous voulez changer la casse, et \ E à la fin. Vim rendra le texte dans la référence arrière majuscule ou minuscule (respectivement). Utilisez \ u et \ l (sans le \ E à la fin) pour simplement changer la casse du tout premier caractère dans la référence arrière.
(Une "référence arrière" est une partie d'une expression régulière qui fait référence à une partie précédente d'une expression régulière. Les références arrière les plus courantes sont &, \ 1, \ 2, \ 3, ..., \ 9).
Quelques exemples qui démontrent la puissance de cette technique:
Minuscule tout le fichier
:% s /.*/ \ L & / g
(& est une référence pratique qui fait référence au texte complet de la correspondance.)
Majuscules tous les mots précédés d'un <(c'est-à-dire ouverture des noms de balises HTML):
:%s/<\(\w*\)/<\U\1/g
Notez également les commandes gu et gU.
Par exemple, ggguG minuscule tout le fichier. (gg = aller en haut, gu = en minuscules, G = aller en EOF).
En utilisant le backref général \ 0 au lieu de ceux du nom (\ 1, \ 2 etc.), vous pouvez enregistrer une saisie pour la strophe de remplacement de l'expression régulière.
Cette expression régulière majuscule un ensemble explicite de mots en majuscules dans un fichier:
:%s/\(select\)\|\(order)\|\(by\)\|\(from\)\|\(where\)/\U\0/g
Pas de science fusée, mais sinon vous devriez faire ceci:
:%s/\(select\)\|\(order)\|\(by\)\|\(from\)\|\(where\)/\U\1\U\2\U\3\U\4\U\5/g