Sublime Text 的 Vim 模式只有 vi_mode(ST4 原生)、Vintage、Vintageous 三条互斥路径;需先通过右下角状态栏确认是否加载,再检查对应配置位置与冲突项,三者不可共存,且重启为硬性要求。

确认你用的是哪个 Vim 模式路径
Sublime Text 没有“一键启用 Vim”的统一开关,因为 vi_mode、Vintage、Vintageous 三条路径互斥,配置错位置或混用会导致 Esc 失效、dd 不响应、状态栏不显示 NORMAL。先看右下角状态栏:没标识?说明根本没加载;有 NORMAL/INSERT?再查设置文件里有没有 "vi_mode": true(ST4 原生)、"ignored_packages": ["Vintage"](Vintage 被禁)、或 vintageous_use_sys_clipboard(Vintageous 已装)。三者只能选其一,不能共存。
Sublime Text 4 原生 vi_mode 怎么开
这是最轻量、重启后即生效的方案,但只支持基础操作,不带 Ex 命令解析器。打开 Preferences → Settings – User,在 JSON 对象里加一行:
"vi_mode": true
保存后必须完全退出 Sublime(关窗口不算),再重开。验证方式:光标在文本中,按 Esc → 状态栏立刻变 NORMAL;再按 i → 变 INSERT。若无效,优先试 Ctrl+[(比 Esc 更可靠),并确认输入法是英文状态——中文输入法下 i/a/Esc 全部被拦截。
Vintage 插件启用后为什么 hjkl 不动
不是插件坏了,而是默认进入插入模式(Insert Mode),不是普通模式。90% 的“Vim 不工作”问题卡在这一步:你按了 Esc,但系统级输入法、自动补全弹窗或远程桌面工具劫持了它。解决顺序如下:
- 改用
Ctrl+[测试是否进命令模式(几乎从不被拦截) - 关闭中文输入法,切到英文键盘布局再试
- 在用户设置加
"pressing_esc_disables_auto_complete_window": true,让Esc同时关闭补全窗+切模式 - 检查
Preferences → Settings – User中"ignored_packages"数组里是否还有"Vintage"—— 必须删掉,且重启才生效
:w 和 /keyword 能用,但 :q、:set number 全都不认,行号得手动通过 View → Line Numbers 开启。
Vintageous 是唯一能跑全功能 Vim 的方案
如果你需要 ci"、%、gU、可视模式、寄存器操作等完整 Vim 行为,Vintage 和原生 vi_mode 都做不到。安装 Vintageous 后,它会自动把 "Vintage" 加回 ignored_packages 并接管全部键位。关键点:
- 别手动改
ignored_packages去“启用 Vintage”,Vintageous 安装后会主动禁用它 - 所有配置项(如
vintageous_use_sys_clipboard)必须写在 Vintageous 专属设置里(Preferences → Package Settings → Vintageous → Settings),写在 User Settings 里无效 - 重启是硬性要求,热重载不触发模式切换
复杂点在于路径选择——不是“怎么配”,而是“先搞清你现在走的是哪条路”。状态栏没标识、Esc 没反应、dd 不删除,大概率是模式根本没加载,而不是键位没绑对。



















