Vim简易操作指南

Vim是一款好用的字符界面文本编辑器。它的强大此处不再赘述。本文只是整理Vim常用的操作说明,更全面的说明请查阅文档。

Vim共有7种模式,不同模式下有不同的操作方式的,实现不同的功能,常用的有四种模式。下面就分别按不同的模式整理。

普通模式

这是打开Vim默认的模式,用来执行移动光标、复制、粘贴、删除等操作,或切换到其他模式。在这个模式下直接按键进行操作,区分大小写。{}包裹的部分表示需要替换成实际内容。

光标移动

  • h:光标左移一个字符,等价于方向键左
  • j:光标下移一行,等价于方向键下
  • k:光标上移一行,等价于方向键上
  • l:光标右移一个字符,等价于方向键右

以上操作可以在前面加上数字来设定倍数,如12j表示向下移动12行。

  • 0:光标移动到行首,等价于Home
  • $:光标移动到行尾,等价于End
  • wW:光标移动到下一个单词开头
  • eE:光标移动到当前单词结尾
  • bB:光标移动到上一个单词开头

wWeEbE大小写的区别是按标点分隔还是按空格分隔,可以在前面加上数字来设定倍数,如3w表示移动到后面第3个单词开头。

  • f{char}:光标移动到行内下一个字符(区分大小写),如fh表示移动到下一个h
  • F{char}:光标移动到行内上一个字符(区分大小写)
  • t{char}:光标移动到行内下一个字符(区分大小写)的前一个字符
  • T{char}:光标移动到行内上一个字符(区分大小写)的后一个字符
  • %:光标跳转到匹配的另一半括号(如(){}[])的位置,如果光标位置不是括号则跳转到下一个括号
  • :{line_num}:光标跳转到指定行号,如:21表示跳转到第21行,这一条本质是命令行模式,因此输入完之后需要回车确认

  • *:向下搜索光标当前所在单词

  • #:向上搜索光标当前坐在单词

屏幕滚动

  • PgUp:即Page Up键,向上滚动一屏,等价Ctrl+B(backward)
  • PgDn:即Page Down,向下滚动一屏,等价Ctrl+F(forward)
  • Ctrl+U,向上滚动半屏(up)
  • Ctrl+D,向下滚动半屏(down)

以上操作可以在前面加上数字来设定倍数,如先输入2再按Ctrl+F就表示向下滚动2屏。

  • zz:将当前行置于屏幕中央
  • zt:将当前行置顶(top)
  • zb:将当前行置底(bottom)

模式切换

  • Esc:任意模式退出到普通模式

插入模式,会在左下角显示-- INSERT ---- 插入 --(根据语言不同)。

  • i:进入插入模式
  • a:光标右移一个字符并进入插入模式
  • o:在光标下一行插入新行并进入插入模式
  • I:光标移动到行首并进入插入模式
  • A:光标移动动行尾并进入插入模式
  • O:在光标上一行插入新行并进入插入模式

命令行模式,会在左下角显示提示符(即下面的:/?)。

  • ::进入执行命令的命令行模式
  • /:进入搜索的命令行模式
  • ?:进入反向搜索的命令行模式

会在左下角显示-- VISUAL ---- 可视 --,或-- VISUAL LINE ---- 可视 行 --

  • v:进入字符选择的可视模式
  • V:进入行选择的可视模式

复制、删除、粘贴

Vim的删除并不是真的删除,而是放入剪贴板(相当于剪切),后面用于粘贴。

  • x:删除光标所在字符
  • dd:删除光标所在行
  • cc:删除光标所在行并进入插入模式
  • yy:复制光标所在行

上面的操作可以在前面加上数字表示操作倍数,包括光标所在位置和后面的内容,如12x表示删除光标所在位置及后面共12个字符的内容,8dd表示删除光标所在行及后面共12行内容。

  • d:配合光标移动命令来进行删除操作,操作包括光标所在位置
  • y:配合光标移动命令来进行复制操作,操作包括光标所在位置
  • c:配合光标移动命令来进行删除操作并进入插入模式,操作包括光标所在位置

j是光标移动到下一行,则dj表示删除光标所在行和下一行;G表示移动到文件末尾,则yG表示复制到文件末尾。

  • p:如果剪贴板中是字符,则在光标位置后面开始插入;如果是行,则在光标所在行的下一行开始插入
  • P:如果剪贴板中是字符,则在光标位置前面开始插入;如果是行,则在光标所在行的上一行开始插入

可以在前面加上数字表示粘贴几次,如5p表示粘贴5次。

一些特殊按键

这些按键和其他文本编辑器可能不同,需要留意。

  • Backspace:即退格键,光标左移一个字符(等价于h
  • Enter:即回车键,光标下移一行(等价于j
  • Ins:即Insert键,进入插入模式(等价于i
  • Del:即Delete键,删除光标位置的字符(等价于x

插入模式

这个模式用于直接编辑文本。这个模式没什么好说的,就是直接输入内容就插入到光标所在位置,和其他文本编辑器没有什么区别。按EscCtrl+[退出插入模式。

命令行模式

这个模式用于执行命令,分别是命令(:)、搜索(/)和反向搜索(?)。下面列出的命令,是直接在普通模式输入的,包括:/?,输入后用回车来执行。

执行命令

  • :w:写入文件(即保存)(write)
  • :q:退出Vim(quit)

上面两个可以组合使用,如:wq表示保存并退出。加上!表示强制执行,如修改了文件,但是不想保存直接退出,就用:q!

  • :e {file}:打开文件
  • :e!:重新加载当前文件(放弃修改)
  • :saveas {path}:以指定路径另存文件
  • :r {file}:将文件的内容插入到光标所在位置下方

替换操作也是在命令模式下进行的。

  • :s/{old}/{new}:在当前行搜索{old}并替换第一个为{new},支持正则表达式(下同)
  • :s/{old}/{new}/g:在当前行搜索{old}并全部替换为{new}
  • :%s/{old}/{new}/g:在全文搜索{old}并全部替换为{new}
  • :%s/{old}/{new}/gc:在全文搜索{old}并全部替换为{new},每次替换前需确认
  • :{start},{end}s/{old}/{new}/g:在第{start}行到第{end}行搜索{old}并全部替换为{new}{start}{end}为数字,省略{start}表示从文件开头开始,省略{end}表示到文件末尾结束

搜索

搜索在普通模式下直接输入/{regex}(向后搜索)或?{regex}(向前搜索),{regex}是正则表达式。

搜索后,会自动跳转到匹配项,可以在普通模式下用n来跳转到下一个匹配项,用N来跳转到上一个匹配项。

可视模式

这个模式用于选择文本。选择文本后,可以用上面普通模式的光标移动屏幕滚动操作来选择内容。然后用dycpx等按键来执行操作(含义和上面复制、删除、粘贴一节中的一样)。此外,还有一些独有操作:

  • u:将选中文本转换为小写
  • U:将选中文本转换为大写
  • >:增加选中行的缩进(向右缩进)
  • <:减少选中行的缩进(向左缩进)
  • =:自动格式化

普通模式下,可以用>><<来快速缩进当前行,也可以在前面加上数字表示倍数操作。

赞赏

微信赞赏支付宝赞赏