Vedi http://vim.wikia.com/wiki/Changing_case_with_regular_expressions
Spiega i modificatori \ U, \ L, \ u, \ l in modo abbastanza chiaro e succinto!
La sua essenza è la seguente:
Ci sono momenti in cui potresti voler esaminare un file e cambiare il caso di caratteri che soddisfano alcuni criteri arbitrari. Se capisci bene le espressioni regolari, puoi farlo abbastanza facilmente.
È semplice come posizionare \ U o \ L davanti a riferimenti indietro di cui si desidera cambiare il caso e, alla fine, \ E. Vim renderà il testo in backreference maiuscolo o minuscolo (rispettivamente). Usa \ u e \ l (senza \ E alla fine) per cambiare il caso del primissimo carattere nel backreference.
(Un "backreference" è una parte di un'espressione regolare che fa riferimento a una parte precedente di un'espressione regolare. I riferimenti più comuni sono &, \ 1, \ 2, \ 3, ..., \ 9).
Alcuni esempi che dimostrano il potere di questa tecnica:
Minuscolo l'intero file
:% S /.*/ \ L & / g
(& è un utile riferimento che fa riferimento al testo completo della corrispondenza.)
Maiuscole tutte le parole precedute da un <(ovvero apertura dei nomi dei tag HTML):
:%s/<\(\w*\)/<\U\1/g
Nota anche i comandi gu e gU.
Ad esempio, ggguG metterà in minuscolo l'intero file. (gg = vai all'inizio, gu = lettere minuscole, G = vai a EOF).
Usando il backref generale \ 0 anziché quelli di nome (\ 1, \ 2 ecc.) Puoi salvare un po 'di battitura per sostituire la stanza del regex.
Questo regex mette in maiuscolo un insieme esplicito di parole in maiuscolo in un file:
:%s/\(select\)\|\(order)\|\(by\)\|\(from\)\|\(where\)/\U\0/g
Non scienza missilistica, ma altrimenti dovresti farlo:
:%s/\(select\)\|\(order)\|\(by\)\|\(from\)\|\(where\)/\U\1\U\2\U\3\U\4\U\5/g