我想将一大组标识符从小写更改为大写。我有一个文件,其中包含多个(数百个)以q_
. 我构建了一个定义此匹配的正则表达式:(q_\w*)
现在我想应用~
命令使它们全部大写(它们当前是小写)。我觉得 VIM 完全有能力做到这一点,但我的技能还没有,你能帮忙吗?
问问题
492 次
2 回答
6
如果要对整个标识符进行大写,对于文件中的每个标识符,请使用以下替换命令:
%s/q_\w\+/\U&/g
这里的技巧在于&
替换模式,它引用了整个匹配。这将替换q_identifier1
为Q_IDENTIFIER1
.
如果您只想大写q
,那么您可以使用:
%s/q_\(\w\+\)/Q_\1/g
现在q_identifier1
将改为:Q_identifier1
如果您想大写除 之外的所有内容q_
,请使用:
%s/q_\(\w\+\)/q_\U\1/g
现在q_identifier1
将改为:q_IDENTIFIER1
于 2012-10-03T19:10:11.373 回答
0
您也可以为此使用宏:
- 搜索您的模式:
/q_\w*
- 开始录制宏:
qq
- 大写并找到下一个:
llve~n
- 停止录制宏:
q
- 必要时重复:
666@q
但仅此而已,否则它将换行并变回小写(或者您可以关闭wrapscan
或ignorecase
暂时关闭)。
于 2012-10-03T21:36:40.703 回答