vim技巧:在插入模式下直接执行命令,快速转换大小写

本篇文章介绍 vim 的一些使用技巧:vim

  • 在插入模式下直接执行命令
  • 快速转换大小写

在插入模式下直接执行命令

在 vim 的插入模式下编辑文件,可能临时须要执行某个命令来完成一些操做,例如要跳转到第 100 行进行编辑。常见的作法是,按 Esc 键退出插入模式,执行 100G 命令跳转光标到第 100 行,再按 i 命令从新进入插入模式,开始编辑。this

其实,有一个更快的方法是,在插入模式下,按 CTRL-O 键,以后就能够输入普通模式的命令,按回车执行该命令。执行命令后,仍是保持在插入模式下。code

注意:CTRL-O 键指的是同时按下 CTRL 键和小写字母 o 键,不须要按 Shift 键。orm

在插入模式按下 CTRL-O 键后,能够执行不带冒号的命令,例如执行 100G 命令跳转光标到第 100 行。也能够执行带冒号的命令,例如执行 :100 命令跳转光标到第 100 行。it

具体能够查看 :help usr_24Normal mode commands 小节,部分说明以下:io

With CTRL-O {command} you can execute any Normal
mode command from Insert mode.  For example,
to delete from the cursor to the end of the line:  

        CTRL-O D

You can execute only one Normal mode command this way.

也能够查看 :help i_CTRL-o 的说明,具体描述以下:table

CTRL-O        execute one command, return to Insert mode   *i_CTRL-O*

即,CTRL-O 能够在插入模式下执行一个命令,执行以后仍是保持在插入模式下。技巧

快速转换大小写

在 vim 中,有不少命令能够用于快速转换大小写。查看 :help case 的说明,就会看到全部能够转换大小写的命令。下面对经常使用的几个命令进行说明。command

把大写转换成小写

使用 gu{motion} 命令把 {motion} 选中的文本转换为小写。{motion} 能够是 vim 任意移动光标的操做。部分操做举例说明以下。方法

  • guw
    后面的 w 表示把光标移动到下一个单词开头。guw 会把光标下的字符、以及直到当前单词末尾的字符都转换成小写。可是光标保持不动。
    若是光标在单词开头,就是转换整个单词成小写。
    若是光标在单词前面的空白字符,不会进行转换。
  • gu3w
    后面的 3w 表示把光标移动到后面第三个单词开头。gu3w 会把光标下的字符、以及直到后面第二个单词末尾的字符都转换成小写。可是光标保持不动。
    3 能够换成其余数字。后面提到的其余移动光标操做也能够加上数字来指定要重复多少次操做。
  • gue
    后面的 e 表示把光标移动到下一个单词末尾。gue 会把光标下的字符、以及直到当前单词末尾的字符都转换成小写。可是光标保持不动。
    若是光标在单词开头,就是转换整个单词成小写。
    若是光标在单词前面的空白字符,也会进行转换。这是 gue 和 guw 最大的区别。
  • gu$
    后面的 $ 表示把光标移动到行末。gu$ 会把光标下的字符、以及直到当前行末尾的字符都转换成小写。可是光标保持不动。
    若是光标在行首,就是转换整行成小写。

使用 guu 命令把光标所在行都转换成小写。

注意guu 的最后一个 u 不是前面提到的 {motion} 操做。gu{motion} 执行的是 gu 命令,{motion} 是移动光标的操做。而这里的 guu 就是完整的命令。

使用 vV、或者 CTRL-V 命令进入可视模式,选中部份内容后,输入 u 则把选中的内容都转换成小写。

把小写转换成大写

使用 gU{motion} 命令把 {motion} 选中的文本转换为大写。{motion} 能够是 vim 任意移动光标的操做。上面已经有部分说明。

使用 gUU 命令把光标所在行都转换成大写。

使用 vV、或者 CTRL-V 命令进入可视模式,选中部份内容后,输入 U 则把选中的内容都转换成大写。

切换大小写

能够使用下面命令来切换大小写,也就是把大写转成小写,把小写转成大写。

  • ~
    会切换光标下字符的大小写。若是光标下的字符是小写,则转换成大写。若是光标下的字符是大写,则转换成小写。光标会往前移动一个字符。
  • 3~
    切换光标下的字符、以及后面两个字符的大小写。能够把 3 换成其余数字,切换指定数目字符的大小写。光标会往前移动三个字符。
  • g~~
    会切换光标所在行的大小写。当前行的全部大写字符会被转换成小写,全部小写字符会被转换成大写。光标会移动行首的第一个非空白字符上。

总结

用列表形式总结经常使用的转换大小写命令以下。

命令 含义
guw 若是光标在单词开头,会转换整个单词成小写
gUw 若是光标在单词开头,会转换整个单词成大写
guu 把光标所在行都转换成小写
gUU 把光标所在行都转换成大写
{Visual}u 把可视模式选中的内容都转换成小写
{Visual}U 把可视模式选中的内容都转换成大写
~ 切换光标下字符的大小写
g~~ 切换光标所在行的大小写
相关文章
相关标签/搜索