Vim 的模式

Vim 之所以强大和它的模式是分不开的。这也是它的独特之处。
Vim 一共有四种常用模式:

  • 普通模式
  • 插入模式
  • 命令行模式
  • 可视化模式

下面我们一一来看下这四个常用模式:

1. 普通模式

和其他我们常用的文本编辑器(比如 word 等)不同,默认情况下 Vim 打开文件后处于普通模式。这个模式并不能直接输入文本。在普通模式下主要的功能是,移动,复制,删除等对现有内容的操作。比如:

1.1 普通模式下移动光标

键名 作用
h 光标左移
j 光标下移
k 光标上移
l 光标右移

除了单独的移动光标之外,我们还可以利用 Vim 的组合思想 —— 数字前缀组合来移动多行,具体细节会在相应章节细说。

组合键 作用
2+j 向下移动两行
5+h 向左移动五个字符=

除了上面的方向法,还有针对更加丰富粒度的词组法:

键名 作用
w 移动到下一个单词词首
b 移动到上一个单词词首
e 移动到当前单词词尾

1.2 普通模式下进行复制 / 删除

普通模式是 Vim 中最常用的模式,这也是区别于其他编辑器的地方。这个模式下可以按照上面的简单操作,做出丰富的操作,高效按需移动,替换,删除等常

见操作。这些都是可以通过快捷键的方式,再加上组合的思想便可以达到所向披靡。

Tips: 在其他模式下可以点击 Esc 键回到普通模式。

2. 插入模式

插入模式是最容易理解的模式,就是和我们平时使用的编辑器一样就是为了插入字符的。进入这个模式也很简单,主要有三种方式:

2.1 i 键进入

i 表示 insert,即插入的意思,言简意赅。打开 Vim 编辑器并点击 i 键,这个时候编辑器左下角会出现 – INSERT – 字样,就这样表示进入插入模式了。

2.2 a 键进入

a 表示 append 意思,打开编辑器后点击 a 键进入此模式。和 insert 不同的是,这个时候光标会移动到下一个字符,然后再进入插入模式。

2.3 o 键进入

o 这个方式会在当前行下面新插入一行,并进入插入模式。

下面我们集中演示下上面的三种插入操作

2.4 大写字母方式进入插入模式

这些命令还可以以大写字母方式进入插入模式,我们来看一下会有什么不一样的效果。

  • I 键:光标所在行首进行插入
  • A 键:光标所在行尾进行插入
  • O 键:光标所在行前新插入一空行进行插入

Tips: 这个模式很简单,没有太多的花样。而且本身 Vim 也不是为了插入模式而设计的,大家可以了解下即可。

3. 可视化模式

可视化模式主要用于对文本进行选择,类似于平时使用鼠标选中操作文本。我们可以选中相应文本,然后针对选中的文本指定操作:复制,替换等。

可视化模式主要有三种方式:

  • v:字符级别可视化
  • V: 行级别可视化
  • Ctrl-v: 块级别可视化

3.1 字符级别可视化

选中文本:

  • 按下 v 进入可视化模式。

  • 移动光标到指定的首尾文本。这个时候选中部分就会被 Vim 高亮提示。

3.2 行级别可视化

按下 V 进入可视化模式。

3.3 块级别可视化

按下 Ctrl-v 进入可视化模式。

4. 命令行模式

顾名思义,命令行模式下的操作当然就是以命令为主,Vim 为我们提供了大量的丰富的命令,你可以把命令行模式当做是普通模式的加强版,它可以用来做到许多普通模式做不到的事情。

在普通模式下按下 : ,这时你会看到窗口的左下角出现了一个 : ,代表你已经进入命令行模式可以进行命令的输入,输入的命令会出现在 : 的后面。下面我们演示下替换的命令操作:

注解
分解 作用 备注
进入命令行模式
% 意味所有行 也可以是指定行或者指定范围行
s 替换意思 substitute
/fmt 匹配的字符 这可以是个正则表达式
/mmm/ 需要替换的结果
g 意思全局 和上面%有所区别,一个是匹配全局一个是替换全局

Tips: Vim 有很多丰富的命令,这里只是抛砖引玉仅供大家对命令模式有一个初步概念。后面再实际增删改查等操作中会加入更多的命令操作。

5. 小结

这四种模式奠定了 Vim 的基本框架,每种模式都为 Vim 提供了丰富的特性。尤其是普通模式和命令行模式是重中之重。在这些模式背后有非常有意思和高效的技巧,后面我们会慢慢挖掘。