Vim核心在于模式区分:正常模式(主战场,h/j/k/l移动、dd删除等)、插入模式(i/a/o等输入)、可视模式(v/V/Ctrl+v选中文本)、底行模式(:保存退出);模式错则操作失效。

vim 的快捷键不是“背下来就能用”,而是得按模式分清——**正常模式、插入模式、可视模式、底行模式**,每个模式下同一按键含义完全不同。记混了就容易误删、卡死、找不到光标。
正常模式下移动和编辑最常踩的坑
新手一上来就按 i 或 a,结果发现光标不动、输入没反应——其实是还在插入模式没按 Esc 退出。正常模式才是执行命令的“主战场”。
-
h/j/k/l是方向键替代,但比方向键更精准;j和k比上下箭头少移动一次手,长期写代码效率明显不同 -
w跳到下一个单词首,b跳到上一个单词首,e跳到当前或下一个单词尾——注意w遇到标点会停,W(大写)则把标点连同单词一起当一块跳 -
0是行首(第 1 列),^是行首第一个非空字符,$是行尾;写配置文件时经常要对齐,^比0更实用 -
gg和G快速跳首尾,但5G或:5才能精准跳第 5 行;G单独用是跳末行,不是“跳到光标所在行”
插入模式进入方式选错导致定位不准
i 和 I、a 和 A 看似只差大小写,但行为差异直接影响编辑节奏:
-
i:光标前插入,适合补字或改错;I:跳到本行第一个非空字符前插入,写注释或加前缀(如//)时比i少按两下← -
a:光标后插入,适合追加内容;A:直接跳到行尾插入,比反复按→或$再a快得多 -
o和O新建行并进入插入,但o是“下方一行”,O是“上方一行”;写函数时加空行分隔,o比手动换行 +Enter更稳
可视模式选中范围不明确,复制粘贴出错
很多人用 yy 复制整行,但遇到多行操作就卡住——其实 V(大写)才是批量处理的起点:
-
v:字符级选择,适合选中变量名或路径片段;选中后按y复制,d删除,c替换 -
V:整行选择,从光标所在行开始,按j/k扩展行范围,再按y就复制多行,不用数3yy -
Ctrl+v:块选择,适合对齐修改(如批量加注释、删列);选中后按I可在每行开头插入相同内容,再按Esc才生效 -
ggVG是全选快捷键,但注意它选中的是全部内容(含末尾换行符),粘贴到新文件时可能多出空行
底行命令里保存退出总报错
:q 报错 E37: No write since last change,不是命令错了,是没改完就急着退——关键看状态栏有没有 [+] 标记(表示已修改未保存):
-
:w仅保存,:q仅退出,:wq或:x保存并退出;:q!强制退出不保存,慎用 - 文件只读时
:w会失败,得用:w!强制写入(需有权限);:e!是放弃当前修改重载原文件 -
:sav filename是另存为,不是:w filename(后者是覆盖原文件);想备份当前缓冲区,:sav backup.txt更安全 -
:qall关所有窗口,:only关其他窗口留当前——多文件编辑时切记别误关
--INSERT--),再按 dd;如果卡在插入模式狂按 dd,只会打出字母。模式切换这个动作本身,就是 vim 最容易被忽略的“开关”。

















