vim

vim #

vim 的四种模式:命令模式,输入模式,底线命令模式,可视模式。

命令模式 #

启动 vim 就会直接进入命令模式。此状态下敲击键盘识别为命令,而非输入字符。比如此时按下 i,会进入输入模式。

  • i a o I A O 都是进入输入模式,区别在于:
    • i:从光标所在位置前面开始插入
    • I:在当前行首插入
    • a:从光标所在位置后面开始输入
    • A:在当前行尾插入
    • o:在光标所在行下方新增一行并进入输入模式
    • O:在当前上面一行插入
  • yy:复制整行内容,例如 3yy 就是复制光标以下的 3 行内容。
  • y$:复制当前光标到行尾内容
  • p:粘贴
  • dd:剪切或者删除光标所在行,20dd 则是删除光标以下的 20 行。
  • d$:剪切或者删除光标到行尾内容
  • u:撤销上一次操作
  • ctrl + r:如果错误的撤销了,可以使用 ctrl + r 恢复。
  • x:删除当前光标后的一个字符。
  • G:移动到最后一行,20G 则会移动到第 20 行(可配合 :set nu)。
  • gg:移动到第一行
  • ::切换到底线命令模式,也就是在 vim 编辑器的最下面一行输入命令。

输入模式 #

在命令模式下按下 i 就进入了输入模式。

  • ESC,退出输入模式,切换到命令模式

底线命令模式 #

在命令模式下按下 : 就进入了底线命令模式。底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

  • q:退出 vim。
  • q!:不保存修改,退出 vim。
  • w:保存文件
  • wq 或者 x:保存并退出。
  • set nu:显示行号
  • set nonu:取消行号
  • /:向前搜索
  • ?:向后搜索
  • n:向下查找
  • N:向上查找
  • s/old/new:用来替换字符串,默认只替换光标所在的行,要替换所有的行使用 %s/old/new,例如 %s/abc/ABC,如果要全局替换所有匹配到的字符使用 %s/old/new/g
  • ESC 键可随时退出底线命令模式。

可视模式 #

当需要对文件内容进行批量操作时使用,在命令行模式下,可进入不同的可视模式:

  • v:字符可视模式,文本选择是以字符为单位的。
  • V:行可视模式,文本选择是以行为单位的。
  • ctrl + v:块可视模式,配合 dI 可以进行块操作。例如多行注释,可以 ctrl + v 进入块可视模式,然后上下移动光标,选中添加注释的块,然后按 I,在插入 #,再按两次 ESC,就可以实现多行注释。如果要取消多行注释,可以 ctrl + v 进入块可视模式,然后上下移动光标,选中添加注释的块,然后按 d 来删除 #