VIM:选择正则表达式,然后应用命令

ste*_*her 5 regex vim text

我想将一大组标识符从小写更改为大写.我有一个文件,其中包含以(以数百左右)开头的唯一标识符q_.我构造了一个定义这个匹配的正则表达式:(q_\w*)现在我想应用~命令使它们全部为大写(它们目前是小写的).我觉得VIM更有能力做到这一点,但我的技能还没有,你能帮忙吗?

pb2*_*b2q 6

如果要为整个标识符加上大小写,请为文件中的每个标识符使用此替换命令:

%s/q_\w\+/\U&/g
Run Code Online (Sandbox Code Playgroud)

这里的技巧是&替换模式,它引用整个匹配.这将取代如q_identifier1Q_IDENTIFIER1.

如果您只想要升级q,那么您可以使用:

%s/q_\(\w\+\)/Q_\1/g
Run Code Online (Sandbox Code Playgroud)

现在q_identifier1将改为:Q_identifier1

如果你想要除了之外的所有内容q_,请使用:

%s/q_\(\w\+\)/q_\U\1/g
Run Code Online (Sandbox Code Playgroud)

现在q_identifier1将改为:q_IDENTIFIER1