03 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 提供了丰富的特性。尤其是普通模式和命令行模式是重中之重。在这些模式背后有非常有意思和高效的技巧,后面我们会慢慢挖掘。