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

标签 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,$s/\(\w\+\)\s\+\(\w\)\(\w*\)\s*;/\=submatch(1)." ".toupper(submatch(2)).submatch(3).";"/

关于vi - 如何在替换字符串中使用 VIM 的 toupper?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3960498/

相关文章:

vim - 如何更改intellij idea中的编辑器行为

android - adb shell : can't use the ESCAPE key

c++ - 如何在VI中移动到下一个括号

vi - 我应该在哪里放置.vim插件?

linux - Shell 脚本 - 如何解压缩文件并通过 shell 脚本对其进行编辑?

vim - 使用 vi/vim 复制部分行文本

vim - 在 Vim 中上下移动整行

vi 编辑器没有响应

vim - 在vim中搜索并删除到行尾

vim - vim中将制表符替换为空格