学习,使用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的命令模式下执行上述替换命令,可以把整个文件中得大写字母全部转换为小写。