在vi中将字符串转换为大写

convert a string in upper case in vi

我想在 vi 中将单词大写(这是一个 verilog 语法文件,我想在其中更改连接性)。

例如:

.STRING0(string1) .String2(string3),

我想将整个字符串大写并且只是第二个字符串的第一个字母 像

.STRING0(STRING1) .String2(String3),

我的搜索模式是:

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

我需要一个像

这样的替换模式
.() .()/

其中缓冲区 </code> 完全大写,缓冲区 <code> 的内容是大写的。这怎么可能?

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

.(\U\E) .(\u)/

来自 Vim 帮助:

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

请注意,上面的替换将使用 </code> 匹配项的标题大小写,只要它只包含一个单词,即替换仅转换 <code> 匹配项中的第一个字符。