sublime text 4默认禁用vintage插件,需手动移除ignored_packages中的"vintage"并完全重启才能启用;启用后默认为插入模式,esc或ctrl+[可进入命令模式,仅支持基础vim操作。

Sublime Text的Vintage插件默认没加载,不是配错了
Sublime Text 4从build 4126起就把Vintage插件默认加进了ignored_packages列表,只要它还在里面,Esc、h/j/k/l就完全没反应——光标不动、:打不出来、方向键输字符,全是这个原因。
打开Preferences → Settings,看右侧User Settings里有没有这行:
"ignored_packages": ["Vintage"]
把它改成"ignored_packages": [],或者删掉"Vintage"(保留其他包名)。改完必须完全退出Sublime Text(关掉所有窗口)再重开,热重载不生效。
验证是否成功:打开任意文件,按Esc后再按h;光标左移说明已进命令模式;如果还打字、h输入字符,就是没启用成功。
Esc按了没反应?先确认你是不是卡在插入模式
Vintage启用后默认是插入模式(Insert Mode),不是Vim用户习惯的命令模式(Normal Mode)。所以一打开文件就能打字、h/j/k/l不动,恰恰说明插件已加载——这是设计行为,不是bug。
-
Ctrl+[比Esc更可靠:它和Esc功能等价,但极少被输入法、RDP或IDEA劫持 - 中文输入法(尤其是Windows微软拼音、搜狗)常拦截
Esc:切到英文键盘布局再试 - 自动补全弹窗(函数提示、参数列表)会挡住
Esc:在用户设置里加"pressing_esc_disables_auto_complete_window": true - 如果仍无效,用
Ctrl+Shift+P输入Vintage: Enter Normal Mode回车,强制切一次
:w能用,但别信其他Ex命令
Vintage根本没有Ex命令解析器,只硬编码支持极少数命令:
-
:w有效,等效于Ctrl+S,只是保存动作 -
:q!有效,丢弃更改并关闭当前标签页(不会退出整个Sublime) -
:q、:e filename、:set number、:wq全部静默失败或报Unknown command - 行号得靠菜单
View → Line Numbers手动开,:set number无效 -
/keyword搜索和n/N跳转是少数完整实现的功能,可放心用
想用:set paste防粘贴错乱?它反而是Vintage支持的少数Ex命令之一,可以放心执行。
想用ciw、寄存器、可视块?原生Vintage做不到
原生Vintage只实现了最基础的按键映射:h/j/k/l、i/a、dd/yy、p、u、/。所有基于文本对象(如iw、ci"、va{)、寄存器("ayy)、宏、.重复、系统剪贴板同步、:map等功能,压根没实现——不是配置能打开的开关。
两个现实选择:
- 装
Vintageous:用Ctrl+Shift+P → Package Control: Install Package搜安装,它会自动把Vintage加回ignored_packages(两者互斥);关键配置如vintageous_start_in_command_mode必须写在Preferences → Package Settings → Vintageous → Settings – User里才生效 - 换VS Code + Vim扩展:目前唯一稳定支持
ci"、va{、gq等复杂操作的轻量编辑器方案
最容易被忽略的是:很多人反复调键位、重装插件,却始终没打开用户设置看一眼ignored_packages里有没有"Vintage"——它就在那儿,安静地禁用着一切。











