我正在尝试
以下命令
%s/\<int.*\>/\U&/gi
大写国际线,整数线。 (我知道我可以添加c并搜索它,然后确认它,但是我更喜欢将其添加到我的.vimrc文件中,并在保存文件时获得结果。)
所以我怎么只能将以int开头的行大写。 (请在句号之间再换一个字。)我尝试过
%s/\<int.\s*\>/\U&/g
但是没有用。
谢谢。
答案 0 :(得分:4)
您需要使用
%s/^int\..*/\U&/i
在这里
^
-字符串的开头int\.
-一个int.
子字符串.*
-行末的所有文本。 \U&
替换将所有匹配的文本变为大写。
i
标志使匹配的大小写不敏感。请注意,此处不需要g
,因为该命令会影响所有行,每行只有1个匹配项。
答案 1 :(得分:3)
我会使用:g
命令:
:g/^int\./norm! gUU
一些注释:
以上行适用于选项ic
集。我觉得设置ic
和scs
很方便。
无论您是否设置了ic
,以下行均有效:
:g/\c^int\./norm! gUU
答案 2 :(得分:1)
简而言之:使用:g
似乎更容易。
类似的东西:
:g/\v^(int|INT)\./norm! gUU
\v
为regexp激活了一种非常神奇的模式,不是强制性的,但我发现这种方式更容易:g
提取与模式匹配的所有行,并为每行启动norm! gUU
(感谢@Kent提供提示!)。如您所知,gUU
在正常模式下会将整行转换为大写。 此处有关:g
的更多信息:http://vim.wikia.com/wiki/Power_of_g
这很容易成为许多用户不知道的Vim的杀手级功能。没有它,我活不下去!