sublime text 默认禁用内置 vintage 插件,需从 ignored_packages 中移除 "vintage" 并完全重启才能启用;启用后默认为插入模式,esc/hjkl 无响应属正常,应按 ctrl+[ 切换命令模式;:w 和 :q! 可用,其余 ex 命令均不支持;推荐改用维护更完善的 vintageous 插件。

Sublime Text 自带 Vintage 插件,但默认被禁用——不是没装,是它被悄悄塞进了 ignored_packages 列表里。只要它还在里面,Esc、h/j/k/l 就完全没反应,连光标都不动。
怎么确认并启用内置 Vintage 插件
打开 Preferences → Settings,看右侧「User Settings」中是否有类似这样的配置:
"ignored_packages": ["Vintage"]
或者更常见的:
"ignored_packages": ["Vintage", "SomeOtherPackage"]
必须把它改成空数组,或至少确保 "Vintage" 不在其中:
"ignored_packages": []- 或
"ignored_packages": ["SomeOtherPackage"]
保存后必须完全退出 Sublime Text(关掉所有窗口),再重新启动——热重载不生效,改完不重启等于白干。
为什么按 Esc 没反应,或 hjkl 不能移动光标
启用后默认是插入模式(Insert Mode),不是 Vim 用户习惯的命令模式(Normal Mode)。所以一打开文件就能打字,h/j/k/l 不动是正常的——这恰恰说明 Vintage 已加载成功。
真正的问题在于切换不到命令模式。常见干扰源:
- 输入法劫持
Esc(尤其是 Windows 微软拼音、搜狗):切到英文状态再试 - 远程桌面(RDP)吞掉
Esc:改用Ctrl+[,它和Esc在 Vintage 中功能完全等价,且极少被拦截 - 自动补全弹窗挡住了:在用户设置里加
"pressing_esc_disables_auto_complete_window": true
如果以上都试过仍无效,直接在命令面板(Ctrl+Shift+P)输入 Enable Vintage 回车,强制启用一次。
:w 和 :q! 能用,但别信其他 Ex 命令
Vintage 根本没有 Ex 命令解析器,只硬编码支持了两个例外:
-
:w可保存(等效于Ctrl+S) -
:q!可强制退出不保存
其余全部不支持:
-
:q报错或静默失败 -
:e filename、:set number、:set paste全部无效 -
:wq看似能用,实则可能静默失败或报Unknown command
行号得靠菜单 View → Line Numbers 手动开;粘贴代码格式错乱?:set paste 在 Vintage 下压根不生效——这不是配置问题,是源码里根本没实现。
想用 ciw、.repeat、系统剪贴板同步?换 Vintageous
原生 Vintage 在 Sublime Text 4 上已基本停止维护:.repeat(点号重复)不支持,ciw 是社区补丁模拟、稳定性差,v 可视模式选中后无法用 hjkl 扩展选区。
Vintageous 是当前事实标准,安装后几乎零配置就能用:
-
Ctrl+Shift+P→Package Control: Install Package→ 搜Vintageous安装 - 安装完重启,Vintageous 自动接管,原生 Vintage 会被禁用
- 想开文件就进命令模式?加
"vintageous_start_in_command_mode": true到用户设置 - 系统剪贴板同步?加
"vintageous_use_sys_clipboard": true
注意:vintage_start_in_command_mode 是旧版 Vintage 的写法,Vintageous 必须用 vintageous_start_in_command_mode——写错字段名,配置就彻底失效。
最常被忽略的点:所有配置项名都变了,而且 Vintageous 的设置路径是 Preferences → Package Settings → Vintageous → Settings – User,不是全局 Settings。写错位置,等于没写。











