Vim 命令小抄

本文整理了 Vim 常用的快捷键。首先介绍 Vim 插入模式、浏览模式和命令模式的快捷键及其功能描述,然后重点介绍导航编辑文档这两部分的快捷键。这篇文档主要参考 Missing semester for CS-Editors (Vim)

Vim 的四种模式

  • Normal mode:普通模式,移动光标或使用命令修改文本
  • Visual mode:浏览模式,选择文本
  • Insert mode:插入模式,编辑文本
  • Command mode:命令模式,执行命令

普通模式

普通模式没太有什么好说的。

插入模式

按键 描述
i 在光标后编辑
I 在光标所在行起始编辑
a 在光标编辑
A 在光标所在行末尾编辑
o 在光标所在行下方增添新行并编辑
O 在光标所在行上方增添新行并编辑

浏览模式

按键 描述
v 从光标所在开始,按字符选择文本
V 从光标所在开始,按选择文本
ctrl+v 从光标所在开始,按选择文本

命令模式

  • :q 退出
  • :w 保存
  • :wq 保存并退出
  • :e {文件名} 打开文件并编辑
  • :ls 展示打开的缓存区
  • :help {命令} 打开帮助,例如
    • :help :w 打开关于命令 :w 的帮助
    • :help w 打开关于命令 w 的帮助

Vim 的导航命令

以下给出 Vim 的导航操作,代替图形界面的光标、下滑等操作。

移动屏幕

按键 描述
zt 移动屏幕,使得光标在窗口顶端
zt 移动屏幕,使得光标在窗口顶端
zz 移动屏幕,使得光标在窗口中部
zb 移动屏幕,使得光标在窗口底部
按键 描述
H 移动光标至屏幕顶端
M 移动光标至屏幕中部
L 移动光标至屏幕底部
按键 描述
gg 移动光标至文件起始处
G 移动光标至文件末尾处

{行号}gg, {行号}G, :{行号} 移动光标至行{行号}

单词

按键 描述
w 将光标移动到前一个单词的起始处
e 将光标移动到当前单词的末尾处;
若已经在末尾,则移动到前一个单词的末尾处
b 将光标移动到后一个单词的起始处
ge 将光标移动到后一个单词的末尾处

按键 描述
^ 将光标移动到所在行第一个字符处
0 将光标移动到行首
$ 将光标移动到行尾

搜索

按键 描述
f{字符} 在当前行向前搜索并跳转至字符 char 处
F{字符} 在当前行向后搜索并跳转至字符 char 处
t{字符} 在当前行向前搜索并跳转到字符 char 后
T{字符} 在当前行向后搜索并跳转到字符 char 前

使用 , / ; 搜索 后/前 一个字符

按键 描述
/{正则表达式} 在文档中搜索{正则表达式}

使用 N / n 搜索 后/前 一个{正则表达式}

Vim 的编辑命令

以下给出 Vim 常用的编辑文本命令。

删除和替换

  • d{导航命令} 删除 {导航命令}
    • e.g. dw 删除单词,d$ 删除光标处至行尾的内容,
      d0 删除光标处至行首的内容
  • c{导航命令} 替换 {导航命令}
    • e.g. cw 可以看作执行删除单词命令后再执行命令 i
  • x 删除字符 (等价于 dl)
  • s 替换字符 (等价于 cl)

复制和粘贴

按键 描述
y␣ 复制光标所在处字符
yy 复制光标所在行
yw 复制光标所在单词
y$ 复制光标处至行尾的内容
按键 描述
p 在光标后粘贴
P 在光标前粘贴

撤销和重现

按键 描述
u 撤销上一次操作
Ctrl+r 重现下一次操作

计数

在此处仅举一些命令作为例子,其它可类推:

  • 3w 向前移动 3 个单词
  • 5j 向下移动 5 行
  • 7dw 删除 7 个单词