Vim 基础
你已经学会了怎么退出 Vim——恭喜,你已经挺过了最难的部分(至少互联网是这么说的)。但如果你不想每次打开 Vim 都只是为了逃出来,而是真正使用它,那了解几个核心概念会让一切豁然开朗。把这一页当作"原来如此,难怪它是这样的"指南吧。
模式——核心理念
大多数编辑器只有一种工作方式:你打字,文字就出现。Vim 不一样。它有模式,每种模式赋予键盘不同的功能。这正是 Vim 强大的原因——也是让新手困惑的原因。
以下是你每天都会用到的四种模式:
NORMAL
模式 — 这是大本营。打开 Vim 时你就在这里。按键不会输入文字——而是用来导航、删除、复制和执行命令。在任何其他模式中按 Esc 即可回到这里。
INSERT
模式 — 现在按键会输入文字,就像普通编辑器一样。按 i(在光标前插入)、a(在光标后追加)或 o(在下方新建一行)进入。按 Esc 返回
NORMAL
。
VISUAL
模式 — 用于选择文本。按 v 进行字符选择,V 选择整行,Ctrl+v 进行块选择。选中后可以删除(d)、复制(y)或更改(c)所选内容。
COMMAND
模式 — 在
NORMAL
模式中按 : 打开屏幕底部的命令行。在这里输入 :w(保存)、:q(退出)和 :s/旧/新/g(替换)等命令。
模式之间的切换
| 从 | 到 | 方法 |
|---|---|---|
| 任意模式 | NORMAL | Esc |
| NORMAL | INSERT | i、a、o、I、A、O |
| NORMAL | VISUAL | v、V、Ctrl+v |
| NORMAL | COMMAND | : |
Buffer(缓冲区)
在 Vim 中打开一个文件时,它会被加载到一个 buffer 中——即文件的内存副本。你可以同时打开多个 buffer,即使屏幕上只显示一个。
| 命令 | 作用 |
|---|---|
:ls |
列出所有打开的 buffer |
:bn |
跳转到下一个 buffer |
:bp |
跳转到上一个 buffer |
:bd |
关闭当前 buffer |
:e 文件名 |
在新 buffer 中打开文件 |
窗口(split)
想同时查看两个文件?Vim 允许你将屏幕拆分为多个窗口,每个窗口显示不同的 buffer(或同一个)。
| 命令 | 作用 |
|---|---|
:sp |
水平 split |
:vsp |
垂直 split |
Ctrl+w h/j/k/l |
在 split 之间移动(左/下/上/右) |
Ctrl+w c |
关闭当前 split |
Ctrl+w = |
使所有 split 大小相等 |
标签页
Vim 中的标签页就像工作区——每个标签页可以包含自己的 split 和 buffer 布局。适合用来组织不同的任务。
| 命令 | 作用 |
|---|---|
:tabnew |
打开新标签页 |
:tabc |
关闭当前标签页 |
gt |
跳转到下一个标签页 |
gT |
跳转到上一个标签页 |
命令行
在
NORMAL
模式中按 : 就会进入
COMMAND
模式。命令行功能非常强大——以下是一些必备命令:
| 命令 | 作用 |
|---|---|
:w |
保存文件 |
:q |
退出 |
:wq |
保存并退出 |
:help 关键词 |
打开 Vim 内置帮助 |
:set number |
显示行号 |
:%s/旧/新/g |
将全文的"旧"替换为"新" |
接下来?
现在你了解了 Vim 的思维方式,可以开始高效使用它了: