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 iaoIAO
NORMAL VISUAL vVCtrl+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 的思维方式,可以开始高效使用它了: