vim高效编辑的关键在于分清普通、插入、底行三种模式及切换方法:启动默认普通模式(可移动删除复制),按i/a/o等进入插入模式(可输入文字),按:进入底行模式(执行保存退出等命令);必须掌握:w、:q、:q!、:wq、:e!等底行指令,以及/搜索、:s替换、dd删除、yy复制等操作。

用 vim 修改文本,关键不在“怎么打字”,而在于清楚当前处在哪个模式、如何切换、以及每一步操作的后果。刚打开文件时不能直接输内容,不是 vim 坏了,是它默认在命令模式——这是高效编辑的前提。
三种模式必须分清
vim 不是“打开就写”,它靠模式分工实现精准控制:
- 普通模式(默认):启动 vim 后立刻进入。能移动光标(h/j/k/l)、删除(dd、x)、复制(yy)、跳转(gg、G、10G),但不能输入文字。
- 插入模式:从普通模式按 i(光标前)、a(光标后)、o(下一行)、I(行首)、A(行尾)进入。这时才能打字。改完按 Esc 回到普通模式。
- 底行模式:普通模式下按 : 进入,用于执行命令,比如保存、退出、替换、显示行号。输完命令回车即执行,自动返回普通模式。
改完内容必须知道怎么存和退
很多人卡在“改好了却关不掉”,其实是没用对底行命令:
- :w —— 仅保存,不退出;
- :q —— 尝试退出,有未保存改动会拒绝;
- :q! —— 强制退出,丢弃所有未保存修改;
- :wq 或 :x 或直接按 ZZ(大写,无需冒号)—— 保存并退出;
- :e! —— 撤销全部修改,恢复到上次保存的状态(误操作后救急用)。
快速定位与精准修改很实用
不用一屏一屏翻,也不用手动删改:
- 查关键词:/关键词 回车,再按 n 跳下一个,N 跳上一个;
- 替换单行第一个匹配::s/旧/新/;
- 替换单行全部::s/旧/新/g;
- 替换全文所有::%s/旧/新/g;加 c(如 :%s/旧/新/gc)可逐个确认;
- 删整行:dd;删单词:dw;删到行尾:d$;
- 复制整行:yy;粘贴到光标后:p,粘贴到光标前:P。
小技巧让日常更顺手
几个不费力但常被忽略的习惯:
- 不确定在哪一模式?连按两三次 Esc,一定回到普通模式;
- 想看行号方便定位:普通模式输 :set nu,关闭用 :set nonu;
- 临时执行 shell 命令,比如查看当前目录:底行输 !:ls;
- 打开文件时直接跳到某行:vim +15 config.conf(打开并定位到第 15 行)。


















