vim 不难用,关键是理清三种模式切换逻辑:启动默认命令模式,按 i /a/ o 进入插入模式,Esc 返回,: 进入底行模式;配合 hjkl 移动、dw/dd 删除、yy/ p 复制粘贴、/ 搜索等高频操作即可高效编辑。

vim 不是难用,而是模式逻辑没理清。掌握三个核心模式和几组高频组合,日常编辑就足够顺手。
三种模式怎么切才不迷路
vim 启动默认在 命令模式(左下角显示 NORMAL 或空白),所有按键都当命令处理,不能输文字。
- 按 i:在光标前进入插入模式(INSERT)
- 按 a:在光标后开始输入
- 按 o:在当前行下方另起一行输入
- 按 Esc:随时退出插入 / 可视 / 底行模式,回到命令模式
- 按 :(Shift + ;):从命令模式进入底行模式(COMMAND),用于保存、退出、搜索替换等
光标移动不用方向键也能快
方向键能用,但用 hjkl 和单词跳转更高效,尤其远程或终端受限时:
- h j k l:左、下、上、右(原 vi 设计,手指不离主键区)
- w:跳到下一个单词开头;b:跳到上一个单词开头;e:跳到当前或下一个单词末尾
- 0(数字零):跳到行首;$:跳到行尾
- gg:跳到文件第一行;G:跳到最后一行;5G:直接跳到第 5 行
- Ctrl + f / Ctrl + b:整页向下 / 向上翻;Ctrl + u / Ctrl + d:半页滚动
删、改、复制、粘贴的直觉操作
命令模式下,操作 = 动作 + 范围。比如 dw 是“delete word”,dd 是“delete line”:
- dd:删整行;3dd:删从当前行起共 3 行
- yy:复制当前行;y$:复制从光标到行尾;yw:复制一个单词
- p:在光标下方粘贴;P:在光标上方粘贴
- x:删光标处字符;X:删光标前一个字符
- cw:删当前单词并自动进入插入模式;c$:删到行尾并插入;cc:删整行重写
- u:撤销;Ctrl + r:重做(不是 Ctrl + z)
搜索、替换和实用小技巧
底行模式(:)里能干很多事,不必记全,先熟用这几个:
- / 关键词 回车:向下搜索;按 n 继续找下一个,N 找上一个
- :s/ 旧 / 新 /:替换当前行第一个匹配项;:s/ 旧 / 新 /g:替换当前行所有
- :%s/ 旧 / 新 /g:全文替换;加 c(如
:%s/old/new/gc)会逐个确认 - :set nu:显示行号;:set nonu:隐藏行号
- :set hlsearch:开启搜索高亮;:nohlsearch:临时关闭高亮
- ZZ(Shift + z 两次):保存并退出(比 :wq 更快,无需回车)
基本上就这些。不需要一次全记住,挑 i、Esc、:wq、dd、yy、p、/、n 这八九个练熟,就能流畅写配置、改脚本、读日志了。