在vi

时间:2015-06-23 06:48:48

标签: regex vi

我想在vi中使用大写单词(这是我想要更改连接的verilog语法文件)。

例如:

.STRING0(string1) .String2(string3)

我想大写一个整个字符串,只是第二个字符串的第一个字母

之类的东西
.STRING0(STRING1) .String2(String3),

我的搜索模式是:

%s/\.\(.*\)(\(.*\)) \.\(.*\)(\(.*\))/

我需要像

这样的替换模式
.\1(\2) .\3(\4)/

其中缓冲区\2完全是大写的,缓冲区\4的内容标题为封装。这怎么可能?

1 个答案:

答案 0 :(得分:1)

使用\U\u替换修饰符:

.\1(\U\2\E) .\3(\u\4)/

来自Vim的帮助:

`\u`      next character made uppercase
`\U`      following characters made uppercase, until `\E`
`\E`      end of \u, \U, \l and \L

请注意,上述替换将使用\4匹配的标题大小写,只要它只包含一个单词,即替换只会转换\4匹配中的第一个字符。