![](/img/trans.png)
[英]Vim — replace ‘foo’ by ‘bar’ on lines NOT starting with ‘character’
[英]Capitilize lines starting with ** in vim
我试图大写以int开头的每一行 。 或INT。
遵循命令
%s/\<int.*\>/\U&/gi
大写国际,整数等线。 (我知道我可以添加c然后搜索它然后确认它但我更喜欢将它添加到我的.vimrc并且每当我保存文件时都会得到结果。)
那么我怎样才能将以int开头的行大写。 (int period space另一个词......)我试过了
%s/\<int.\s*\>/\U&/g
但它不起作用。
谢谢。
你需要使用
%s/^int\..*/\U&/i
这里,
^
- 字符串的开头 int\\.
- 一个int.
子 .*
- 所有文本到行尾。 \\U&
replacement将所有匹配的文本转换为大写。
i
标志使匹配不区分大小写。 请注意,此处不需要g
,因为该命令将影响所有行,并且每行只有1个匹配项。
我会这样做:g
命令:
:g/^int\./norm! gUU
一些说明 :
以上行适用于选项ic
集。 我觉得设置ic
和scs
很方便。
无论你是否设置了ic
下面的行都有效:
:g/\\c^int\\./norm! gUU
只是说:看起来更容易:g
。
就像是:
:g/\v^(int|INT)\./norm! gUU
\\v
激活regexp的魔法模式,不是强制性的,但我觉得这样比较容易, :g
获取与模式匹配的所有行,并启动norm! gUU
norm! gUU
为每个线(感谢@Kent的提示!)。 如您所知, gUU
在正常模式下将整行转换为大写。 有关更多信息:g
here: http : //vim.wikia.com/wiki/Power_of_g这很容易成为许多用户不知道的Vim的一个杀手级功能。 没有它,我活不下去!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.