Sublime Text 的 Vim 模式分原生 vi_mode、内置 Vintage、第三方 Vintageous 三条互斥路径:状态栏有 NORMAL/INSERT 标识才启用;vi_mode:true 为 ST4 原生模式;ignored_packages 含 Vintage 为禁用旧版;vintageous_ 开头配置项表明已安装 Vintageous;Esc 失效多因输入法、自动补全或快捷键冲突,优先用 Ctrl+[;dd/yy/ciw 等操作支持度逐级提升,Vintageous 是唯一默认支持全部 Vim 特性的方案;配置项名易错,必须写在 Vintageous 专属设置中并重启生效。

Sublime Text 的 Vim 模式不是开个开关就“像 Vim 一样工作”,它分原生 vi_mode、内置 Vintage、第三方 Vintageous 三条路径,行为差异极大——选错起点,后面所有键位、配置、插件都白调。
怎么确认自己用的是哪个 Vim 模式
先看状态栏右下角有没有 NORMAL/INSERT 标识:没有?说明根本没启用任何 Vim 模式。有?再往下查:
- 打开
Preferences → Settings – User,搜"vi_mode": true→ 是 Sublime Text 4 原生模式(最轻但功能最少) - 搜
"ignored_packages":且含"Vintage"→ 如果"Vintage"在数组里,说明原生 Vintage 被禁用;如果已移除且重启过,就是旧版 Vintage - 搜
vintageous_开头的配置项(如vintageous_use_sys_clipboard)→ 已安装 Vintageous,且它会自动禁用原生 Vintage
三者互斥:Sublime 不允许 vi_mode 和 Vintage 同时生效;Vintageous 安装后会主动把 "Vintage" 加回 ignored_packages。
Esc 按了没反应?别急着改键位,先排除三个干扰源
按 Esc 进不了命令模式,90% 不是配置错,而是被挡住或劫持了:
-
Ctrl+[一定可用,比Esc更可靠——远程桌面、输入法、某些 macOS 全局快捷键常拦截Esc,但很少动Ctrl+[ - 自动补全弹窗(Auto Complete)会吃掉
Esc:在用户设置加"pressing_esc_disables_auto_complete_window": true,一按就关窗+切模式 - 英文输入法未激活:macOS 下中文输入法状态下,
i/a/Esc全部失效,必须切回英文键盘布局
别在 Key Bindings – User 里盲目加 jj 映射——先确保基础通路畅通,否则映射本身也触发不了。
dd、yy、ciw 这些操作为啥不生效
这不是你记错了,是模式能力边界不同:
- 原生
vi_mode(ST4 内建):只支持h/j/k/l、i/a/Esc、:w、:q!;dd/yy等操作符-动作组合需手动写键绑定,官方不预置 - 内置
Vintage:支持dd/yy/p/u//,但不支持ciw、gq、可视块选择(Ctrl+v)、寄存器("ayy)或任何:set类命令 -
Vintageous:默认支持全部,包括ciw、.(repeat)、"0p、:s/old/new/g、:e filename;唯一要配的是剪贴板:"vintageous_use_sys_clipboard": true
想用 ciw 却发现光标乱跳,大概率还在 vi_mode 或 Vintage 下硬扛——换 Vintageous 是最快解法,不是“增强”,是能力基线。
配置项名拼错一个字母就失效,重点盯这三处
Vintageous 的配置项名极易手误,尤其从 Vintage 迁移过来的人:
- 想开文件就进命令模式?必须是
"vintageous_start_in_command_mode": true,不是vintage_start_in_command_mode(少ous) - 系统剪贴板同步?必须是
"vintageous_use_sys_clipboard": true,不是vintage_use_sys_clipboard - 状态栏显示 Vim 模式标签?
"vintageous_tab_label_format": "Vim",不是vintage_tab_...
所有配置必须写在 Preferences → Package Settings → Vintageous → Settings – User 里,写在全局 Settings – User 中无效。改完保存,必须重启 Sublime —— 这一步跳过,等于没配。











