请参见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)。
通过使用\ 0通用backref而不是名称(\ 1,\ 2等),可以保存正则表达式的replace节上的某些键入内容。
此正则表达式将文件中的一组单词改为大写:
:%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