代码之家  ›  专栏  ›  技术社区  ›  Valentin H

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

vi
  •  2
  • Valentin H  · 技术社区  · 16 年前

    是否可以在替换字符串中使用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 回复  |  直到 8 年前
        1
  •  3
  •   Jeet    16 年前

    尝试:

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