2010-10-18 60 views
2

是否可以使用替换字符串中的toupper? 假设,有成员声明是这样的:如何在替换字符串中使用VIM的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功能的作品?

回答

3

尝试:

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

大,它的作品!非常感谢你!我看到,字符串应该用“”括起来,并与使用点的其他字符串或函数结果连接。非常感谢你! – 2010-10-20 11:45:40