不同语言环境有不同的变量命名风格,有时候需要进行批量互转。比如protobuf要求为下划线分隔的变量形式,而如果正好有一批驼峰形式的变量,使用如下正则可以在vim里快速完成转换:
:%s/\<\u\|\l\u/\= join(split(tolower(submatch(0)), '\zs'), '_')/gc
如果变量中带有数字,比如alt1Val要转成alt1_val,那么上面的正则只需要稍微调整一下:
:%s/\<\u\|\l\u\|\d\u/\= join(split(tolower(submatch(0)), '\zs'), '_')/gc
而将下划线分隔转换成驼峰风格,原理类似,正则如下:
%s/_\l/\= join(split(toupper(submatch(0)), '_'), '')/gc