一、先搞明白:vi 和 vim 到底是啥?
vi/vim 是 visual interface 的简称,是 Linux 中最经典的文本编辑器。同图形化界面中的文本编辑器一样,vi 是命令行下对文本文件进行编辑的绝佳选择。简单说,vi/vim 就是 Linux 里的'记事本',专门用来编辑文本 —— 比如改系统配置、写脚本。
- vi:Linux 自带的老版本'记事本',功能基础但够用;
- vim:vi 的升级版,多了语法高亮(比如写代码时关键字会变色)、代码补全等功能,现在 Linux 里输
vi命令,其实默认打开的是 vim。
不管用 vi 还是 vim,操作逻辑都一样,下面统一叫'vim'。
二、核心中的核心:vim 的 3 种工作模式
这是学好 vim 的关键!刚开始会觉得绕,但记住'按 Esc 键能回到命令模式',就不会慌了。先看图示理解模式切换关系:
[图示:vim 三种模式切换关系]
1. 命令模式(打开就进,默认模式)
通常图形化编辑器双击即开,但 vim 不一样 —— 打开文件后,默认进入'命令模式',这时按键盘不会输入文字,而是执行命令(比如移动光标、复制粘贴)。所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。此模式下,不能自由对文本进行编辑。
怎么进命令模式?
终端输入 vim 文件名 就行,比如想编辑一个叫 test.txt 的文件,就输:
vim test.txt
- 如果
test.txt不存在,会新建这个文件; - 如果文件存在,就打开已有的文件。
命令模式必学快捷键(带例子,一看就会)
这些是日常最常用的,记几个高频的就行,不用贪多:
| 功能 | 快捷键 | 例子说明 |
|---|---|---|
| 光标移动(上下左右) | h/j/k/l | 按 j 光标向下动 1 行,比按方向键快 |
| 跳转到文件首行 | gg | 不管光标在哪,按 gg 直接到第一行 |
| 跳转到文件尾行 | G(大写) | 按 G 直接到最后一行 |
| 复制当前行 | yy | 按 yy,当前行内容就被'复制'了 |
| 粘贴复制的内容 | p(小写) | 复制后按 p,内容粘在光标下一行 |
| 删除当前行 | dd | 按 dd,当前行就被'删掉'了 |
| 撤销上一步操作 | u | 删错了?按 u 就能恢复 |
比如你想复制第 3 行,粘到第 5 行下面:
- 按
3G跳转到第 3 行; - 按
yy复制这行; - 按
5G跳转到第 5 行; - 按
p粘贴,内容就到第 6 行了。
2. 输入模式(要写字,先切这个模式)
命令模式不能输入文字,想写字就得切到'输入模式'。


