Sublime Text 的 Vim 模式需手动启用 Vintage 插件并重启软件,默认处于插入模式,仅支持 :w 和 :q! 命令,高级 Vim 功能需换用 Vintageous 插件。

Sublime Text 的 Vim 模式不是“开个开关就飞起来”,而是默认被关死的——ignored_packages 里只要还躺着 Vintage,Esc、h/j/k/l 就完全没反应,连光标都不动。真想用 Vim 键盘流,得先让它活过来,再接受它的能力边界。
怎么确认 Vintage 插件真在运行
90% 的“Vim 不工作”问题,根源就在这一步:插件压根没加载。
- 打开 Preferences → Settings – User,检查右侧 JSON 是否含
"ignored_packages": ["Vintage"]或类似写法 - 把它改成
"ignored_packages": [](空数组),或确保"Vintage"不在该数组中 - 保存后必须完全退出 Sublime Text(不只是关窗口),再重新启动——热重载不生效
- 验证方式:打开任意文件,按
Esc,再按h;若光标左移,说明已进命令模式;若仍输入字符,就是没启用成功
为什么 Esc 按了没反应,或 hjkl 一直不动
这不是插件坏了,而是你大概率还卡在插入模式,或系统级干扰劫持了 Esc。
- Sublime 的 Vintage 启用后默认进入的是插入模式(Insert Mode),和 Vim 新手教程说的“开文件就进普通模式”相反——这是设计行为,不是 bug
- 优先试
Ctrl+[(和Esc功能等价,但极少被输入法、RDP、IDEA 等工具拦截) - 关闭中文输入法(尤其是 Windows 微软拼音、搜狗),切到英文状态再试
- 检查是否弹出自动补全浮窗(如函数提示),它会劫持
Esc关闭自己;可在用户设置加"pressing_esc_disables_auto_complete_window": true
:w 能用,但别信其他 Ex 命令
Vintage 根本没有 Ex 命令解析器,只硬编码支持两个指令::w 和 :q!。其余像 :q、:e filename、:set number 全都不认。
-
:w等效于Ctrl+S,只是保存动作,不带任何 Vim 语义 -
:q!可强制退出不保存,但:q会直接报Unknown command - 行号需手动通过 View → Line Numbers 开启,
:set number无效 -
/keyword和跳转n/N是少数完整实现的功能,可放心用
想用 ciw、可视模式、寄存器?换 Vintageous
原生 Vintage 不支持文本对象、宏、. 重复、标签跳转、寄存器操作,也不同步系统剪贴板——这些不是配置能打开的开关,是压根没实现。
- 安装
Vintageous后,可在 Preferences → Package Settings → Vintageous → Settings 中配置"vintageous_use_sys_clipboard": true - 加
"vintageous_start_in_command_mode": true让文件一打开就进命令模式(Vintage不支持该配置项) -
Vintageous的键绑定更贴近 Vim 逻辑,比如ciw删除当前词并进入插入,vi"选中双引号内内容,"*p粘贴系统剪贴板 - 注意:所有配置项名都变了——
vintage_start_in_command_mode是旧版 Vintage 的写法,Vintageous必须用vintageous_start_in_command_mode,拼错一个字母就失效
最常被忽略的一点是:不同 Vim 模式路径(原生 vi_mode、内置 Vintage、Vintageous)行为差异极大,选错起点,后面所有键位、映射、插件都白调。


















