Sublime Text 的 Vintage 是内置但默认禁用的 Vim 模式模拟器,需从 ignored_packages 中移除并重启才能启用;启用后默认为插入模式,按 Esc 进入命令模式;其仅支持少量 Ex 命令,完整 Vim 功能需换用 Vintageous。

Sublime 的 Vintage 插件不是“安装”,而是“启用”
Sublime Text 自带 Vintage,它不是一个需要下载安装的第三方插件,而是一个内置但默认被禁用的模式模拟器。你找不到“Vintage 插件包”去下载,也无需通过 Package Control 安装——只要没被显式屏蔽,它就在那儿。问题出在配置上:它极大概率已被加入 ignored_packages 列表,导致整个功能完全不加载。
- 打开
Preferences → Settings,看右侧「User Settings」里有没有类似"ignored_packages": ["Vintage"]或"ignored_packages": ["Vintage", "SomeOtherPackage"] - 把
"Vintage"从这个数组里彻底删掉,改成空数组[]或只留其他真正想忽略的包 - 必须重启 Sublime Text —— 修改设置后热重载无效,不重启等于没改
启用后 hjkl 不动?你可能还在插入模式
很多人启用 Vintage 后第一反应是“按键没反应”,按 hjkl 光标纹丝不动。这不是插件坏了,而是 Sublime 默认进入的是插入模式(Insert Mode),和 Vim 新手教程里说的“打开就进普通模式”相反——它故意设计成“一开就能打字”,对非 Vim 用户友好,但对老 Vim 用户极其反直觉。
- 按
Esc或Ctrl+[强制退出插入模式,进入命令模式(Normal Mode) - 如果按
Esc没反应,大概率是自动补全弹窗挡住了;在用户设置中加"pressing_esc_disables_auto_complete_window": true可修复 - 想一打开文件就进命令模式?原生 Vintage 不支持
vintage_start_in_command_mode,那是Vintageous的配置项;坚持用 Vintage 就只能手动按Esc
:w 能用,:q 却报错?原生 Vintage 的 Ex 命令极少
输入 :w 能保存,:q! 有时也能退出,于是误以为“Vim 命令行”已就位。实际上,原生 Vintage 只硬编码了极少数 Ex 命令::w、:q!、:qall! 等寥寥几个。其余如 :q、:e filename、:set nu、:map 全都不支持——不是 bug,是设计如此,它只模拟按键层,没实现命令解析器。
- 别指望用
:s/old/new/g替换,那得靠 Sublime 原生的Ctrl+H或Ctrl+Shift+H - 需要完整 Ex 支持、宏、寄存器、
ciw这类文本对象?必须换Vintageous(或NeoVintageous) - 若只是想快速移动+删行+复制粘贴,
Vintage够用;但凡想写点 Vim 风格脚本或长期依赖:命令,它就立刻捉襟见肘
要不要装 Vintageous?取决于你对 Vim 的“依赖深度”
如果你日常用 Vim 是为了 3dw、gqip、@a、/foo<CR>nN、系统剪贴板同步、状态栏显示模式,那 Vintage 就是半成品。而 Vintageous 是目前最成熟、活跃维护的替代方案,它把 Vim 的操作哲学真正嵌入 Sublime。
- 用
Ctrl+Shift+P→Package Control: Install Package→ 搜Vintageous安装即可 - 安装后默认启用,无需改
ignored_packages;但建议在Preferences → Package Settings → Vintageous → Settings – User中加"vintageous_use_sys_clipboard": true和"vintageous_start_in_command_mode": true - 注意快捷键冲突:比如
Ctrl+P(Goto Anything)在 Vintageous 下会被拦截为命令模式的:e,需在 Vintageous 键绑定里单独放行
最容易被忽略的其实是重启动作和模式判断——很多人改完设置不重启,或按着 hjkl 发现不动就放弃,其实只差一次 Esc。










