我正在尝试搜索&在我的文件中替换所有出现的特定模式,然后在每次匹配时调用toupper()
。在实践中,没有那么多我不能手工完成的事情,但我很想提高我的Vim技能并找到一种(简单)方法让Vim为我做这件事。我说简单,否则我会忘记。
通过阅读s/
的Vim帮助,我应该能够做到这样的事情:
:%s/\vfunction ([a-z0-9_]+)/\="function " . toupper("\1")/g
(假设我正在大写所有函数定义名称)。
这实际上只是用控制字符^A
替换了函数名。如何在正则表达式中引用捕获组?
答案 0 :(得分:3)
道歉。我应该仔细阅读。无论如何,我会回答我自己的问题,而不是删除它。您需要使用submatch(n)
来引用捕获组:
:%s/\vfunction ([a-z0-9_]+)/\="function " . toupper(submatch(1))/g
答案 1 :(得分:1)
在替换模式中使用\U
。
:%s/\vfunction ([a-z0-9_]+)/function \U\1/