Sublime 的 Vintage Mode 是内置轻量级 Vim 模拟层,但默认被加入 ignored_packages 黑名单而禁用;需手动移除并重启才能启用 h/j/k/l、dd 等基础命令,且仅支持 Normal/Insert 两模式;进阶功能需改用 Vintageous 插件。

Sublime 的 Vintage Mode 是编辑器内置的一个轻量级 Vim 模拟层,它不是 Vim,但能让你用 h/j/k/l、dd、yy、p 等键完成基本导航和编辑——前提是它没被禁用。
为什么默认不生效?检查 ignored_packages 是关键
Sublime 默认把 Vintage 放进黑名单里了,所以即使你装了 Sublime,Vim 键也完全没反应。这不是 bug,是设计如此。
- 打开 Preferences → Settings,看右侧用户设置(User Settings)
- 找到
"ignored_packages"这一项 - 如果值是
["Vintage"]或["Vintage", "SomeOtherPackage"],必须把它删掉;只留空数组[]或干脆不写这一项 - 保存后重启 Sublime —— 不重启不会生效
常见错误现象:Esc 没反应、hjkl 仍跳字符而非移动光标、dd 直接输入字母 “dd” —— 全部指向 Vintage 仍被忽略。
Command Mode 和 Insert Mode 是什么?别被名字绕晕
Sublime 本身无模式概念,只有启用 Vintage 后才模拟出这两个状态:
-
Command Mode= Vim 的 Normal Mode:按Esc进入,此时所有按键都当命令用(w跳词、ciw改单词),不输文字 -
Insert Mode= Vim 的 Insert Mode:按i/a/o进入,此时才能打字,像普通编辑器一样 - 注意:
Command Mode下选中文本 ≠ 可编辑;想改内容,必须先切回Insert Mode
容易踩的坑:刚启用时习惯性按 i 开始敲代码,结果发现光标不动或输不出字 —— 很可能你已经在 Insert Mode 里了,再按 i 是插入字母 “i”,不是切换模式。
想更像 Vim?别硬调原生 Vintage,换 Vintageous
原生 Vintage Mode 只支持最基础的命令(dd、yy、p),连 :w 或 /search 都不认,也不支持可视块选(Ctrl+v)、宏录制、多窗口等核心 Vim 功能。
- 用
Package Control安装Vintageous(比老版NeoVintageous更活跃、兼容性更好) - 安装后,在 Preferences → Package Settings → Vintageous → Settings – User 中加配置:
{
"vintageous_use_ctrl_keys": true,
"vintage_start_in_command_mode": true,
"pressing_esc_disables_auto_complete_window": true
}
这样 Ctrl+h/j/k/l 才能跨标签页/分屏导航,文件一打开就进命令模式,按 Esc 也能关掉补全弹窗 —— 这些才是日常 Vim 流程里真正卡手的地方。
最常被忽略的一点:Vintage Mode 本质是“快捷键映射层”,它不改变 Sublime 的底层行为。比如多光标、正则替换、项目搜索这些 Sublime 原生强项,和 Vintage 并存但互不感知;而 Vim 用户期待的“ci" 改引号内内容”这类文本对象操作,原生 Vintage 做不到,必须靠 Vintageous 或手动绑定。别指望开个开关就变 Vim,得选对工具再配好参数。










