2010-10-18 61 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