sublime text 的 vintage 模式默认禁用,需手动移除 ignored_packages 中的 "vintage" 并完全重启才能启用;它仅支持基础 vim 命令如 hjkl、dd、:w,不支持 :q、:set、. 重复、寄存器等高级功能。

Sublime Text 的 Vintage 模式不是“开个开关就能 Vim”,它默认被禁用,且功能边界非常明确:能用 hjkl、dd、yy、/ 和 :w,但不支持 :set number、:q、. repeat、寄存器操作或命令行解析——这不是 bug,是设计如此。
如何确认 Vintage 插件真正在运行
很多人改了设置却没效果,问题不在路径或语法,而在插件根本没加载。关键就看 ignored_packages 是否还锁着 "Vintage":
- 打开 Preferences → Settings,只看右侧 Settings – User
- 搜索
"ignored_packages",如果值是["Vintage"]或["Vintage", "SomeOtherPlugin"],说明插件被强制停用 - 必须改成
"ignored_packages": []或至少确保"Vintage"不在数组里 - 保存后必须完全退出 Sublime Text(关闭所有窗口 + 进程)再重开,热重载不生效
验证方式:打开任意文件,按 Esc,再按 h;若光标左移,说明已进命令模式;若仍可输入字符,说明 Vintage 仍未启用。
为什么 Esc 按了没反应,或 hjkl 不动
这不是按键映射失效,而是你大概率还卡在插入模式,且 Esc 被系统级组件劫持了:
-
Ctrl+[和Esc在 Vintage 中功能完全等价,且极少被输入法、RDP、IDEA 等工具拦截,优先试这个 - Windows 用户尤其注意:微软拼音、搜狗等中文输入法在非英文状态下会吞掉
Esc,切到英文再试 - 自动补全弹窗(比如函数提示)会抢走
Esc用于关闭自己,加这行到用户设置可修复:"pressing_esc_disables_auto_complete_window": true - 别误判状态:Vintage 启用后默认就是插入模式,
hjkl本就不该动——这是正常行为,不是故障
:w 可用但 :q 报错?这是 Vintage 的硬限制
Vintage 没有真正的 Ex 命令解析器,只硬编码支持极少数指令。所有报错或静默失败,都源于这个前提:
-
:w可保存(等效于Ctrl+S),:q!可强制关闭当前标签页(丢弃未保存内容) -
:q、:e filename、:set number、:s/old/new/g全都不支持,写进去只会报Unknown command - 行号要手动开启:View → Line Numbers,不是
:set number -
/keyword搜索和n/N跳转是少数完整实现的功能,可放心用
想用 ciw、. 重复、系统剪贴板同步?别折腾 Vintage 了
原生 Vintage 不支持文本对象操作(如 ciw)、可视块选择(Ctrl+v)、寄存器("ayy)、. 重复、自定义 :command,也没办法让 y 和 p 走系统剪贴板。
- 装
Vintageous:用Ctrl+Shift+P→Package Control: Install Package搜安装,它会自动禁用原生 Vintage - 关键配置写在 Preferences → Package Settings → Vintageous → Settings – User 里:
"vintageous_use_sys_clipboard": true(启用系统剪贴板)、"vintageous_start_in_command_mode": true(注意拼写,不是vintage_开头) - 别信 “Vintage + 插件增强” 方案:
VintageEx等已无人维护,在 Sublime Text 4 上基本不可用
最常被忽略的是配置项名——vintageous_ 开头是 Vintageous 专用,拼错一个字母就彻底失效;而原生 Vintage 根本不认这些字段。











