本文整理了 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$ |
复制光标处至行尾的内容 |
撤销和重现
| 按键 |
描述 |
u |
撤销上一次操作 |
Ctrl+r |
重现下一次操作 |
计数
在此处仅举一些命令作为例子,其它可类推:
3w 向前移动 3 个单词
5j 向下移动 5 行
7dw 删除 7 个单词