如何只在VIM中小写引号字符串

Min*_*gyu 5 regex vim shell lowercase

假设我有一个包含以下内容的文件:

Apple 'BANANA' ORANGE 'PEACH'
Run Code Online (Sandbox Code Playgroud)

将所有引用的大写转换为小写的正则表达式是什么?

预期的输出文件应如下所示:

Apple 'banana' ORANGE 'peach'
Run Code Online (Sandbox Code Playgroud)

FDi*_*off 9

尝试

:%s/'\w\+'/\=tolower(submatch(0))/g
Run Code Online (Sandbox Code Playgroud)

'\w\+'匹配引号内的任何单词.并将其替换为匹配的小写版本.\=告诉替代来计算表达式tolower(submatch(0)),其中tolower()开关中找到的字符串submatch(0)以小写(整个匹配).


您也可以使用\L原子将其后面的字符串转换为小写字母并且与之\0相同submatch(0)

:%s/'\w\+'/\L\0/g
Run Code Online (Sandbox Code Playgroud)

看一眼 :h s/\L