如何在替换字符串中使用VIM的toupper?

时间:2010-10-18 15:07:06

标签: vi

是否可以在替换字符串中使用toupper? 假设有成员声明如下:

int myVar;

我想将变量名的第一个字母设为大写字母:

int MyVar;

不幸的是,这不起作用:

:1,$s/\(\w\+\)\s\+\(\w\)\(\w*\)\s*;/\1 \=toupper(submatch(\2))\3;/

最后,我可以使用\ u来执行此操作:

:1,$s/\(\w\+\)\s\+\(\w\)\(\w*\)\s*;/\1 \u\2\3;/

但是,如果在替换字符串中使用toupper等函数,我仍然很好奇吗?

1 个答案:

答案 0 :(得分:3)

尝试:

:1,$s/\(\w\+\)\s\+\(\w\)\(\w*\)\s*;/\=submatch(1)." ".toupper(submatch(2)).submatch(3).";"/