vim中字母大小写变换

时间:2022-08-04 00:47:59

学习,使用vim有一段时间了。今天用的时候要把一个单词的首字母变为大写,有很多种方法可以做到的,但是隐约记得有个快捷键可以做到的,但是是什么却想不起来了。

通过查阅帮助手册和网上各位高人的帖子,除了找到我之前见过的那个方法,还发现了网友们提供的好多有趣的方法。所以就记在这里,以便以后查阅。另一方面也可以跟大家一起探讨一下。

方案1:~

Nomal模式下,把光标移动到要变换的字母上,按Shift和数字1左边的那个键,也就是~就可以实现单个字母的大小写变换。

方案1+:
~{motion}
和大多数vim动作一样,可以和数字/位移组合起来用。
比如在normal模式下,先按数字5然后按~
那么光标后面5个字母的大小写都反转了。
注意是反转哦,就是原来是大写的执行命令后就变小写了,原来是小写的执行命令后就变大写了。

方案2:g~

Nomal模式下,把光标移动到要变换的字母上,先按g,然后按~,然后移动光标,之前光标所在位置的大小写也转换了。

方案2+:
g~{motion}
反转{数字/位移}内的大小写。

g~g~
g~~
反转当前行的大小写。

方案3:gu{motion}

使{数字/位移}内的字母小写。

方案3+:
gugu
guu
使当前行的字母全部小写。

方案4:gU{motion}

使{数字/位移}内的字母大写。

方案4+:
gUgU
gUU
使当前行的字母全部大写。

方案4++:
gggUG
使整个文档的字母全部大写。
够酷吧,其实分解开来,也很简单:gg gU G
gg回到文档开始,
执行命令gU,
G移动到行尾。
上面几个都可以这样扩展。

方案5:{visual}u

在视图模式下使选中的字母全部小写

方案6:{visual}U

在视图模式下使选中的字母全部大写

方案7::%s/[a-z]/\U&/g

在vim的命令模式下执行上述替换命令,可以把整个文件中得小写字母全部转换为大写。
对于替换的范围可以根据自己需要做调整,%号代表全文件范围。

方案8::%s/[A-Z]/\L&/g

在vim的命令模式下执行上述替换命令,可以把整个文件中得大写字母全部转换为小写。


方案7和方案8的正则表达式中:\U&和\L&我还不太理解,有知道这个的朋友请教一下我,谢谢。