繁体   English   中英

在vim中以**开头的行首字母

[英]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集。 我觉得设置icscs很方便。

  • 无论你是否设置了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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM