Дивіться http://vim.wikia.com/wiki/Changing_case_with_regular_expressions
Це пояснює модифікатори \ U, \ L, \ u, \ l досить чітко та стисло!
Суть її полягає в наступному:
Можливо, вам захочеться пройти файл і змінити регістр символів, які відповідають деяким довільним критеріям. Якщо ви добре розумієте регулярні вирази, ви можете це зробити досить легко.
Це так само просто, як розміщення \ U або \ L перед зворотними параметрами, для яких потрібно змінити регістр, і \ E в кінці. Vim зробить текст у верхньому або малому регістрі (відповідно). Використовуйте \ u і \ l (без \ E в кінці), щоб просто змінити регістр першого символу в зворотному режимі.
("Зворотний посилання" - це частина регулярного виразу, яка відноситься до попередньої частини регулярного виразу. Найпоширеніші зворотні посилання - &, \ 1, \ 2, \ 3, ..., \ 9).
Деякі приклади, які демонструють силу цієї техніки:
Малий регістр всього файлу
:% s /.*/ \ L & / g
(& - це зручна зворотна посилання, що стосується повного тексту матчу.)
Пропишіть усі регістри слів, яким передує <(тобто відкриття імен HTML-тегів):
:%s/<\(\w*\)/<\U\1/g
Зауважте також команди gu та gU.
Наприклад, ggguG видасть малий регістр всього файлу. (gg = перейти до вершини, gu = нижній регістр, G = перейти до EOF).
Використовуючи загальний backref \ 0 замість іменних (\ 1, \ 2 тощо), ви можете зберегти набравши для заміни строфи регулярного виразу.
Цей верхній регістр виражає явний набір слів у великі регістри у файлі:
:%s/\(select\)\|\(order)\|\(by\)\|\(from\)\|\(where\)/\U\0/g
Не ракетна наука, але в іншому випадку вам доведеться це зробити:
:%s/\(select\)\|\(order)\|\(by\)\|\(from\)\|\(where\)/\U\1\U\2\U\3\U\4\U\5/g