Sublime Text自动闭合大括号需显式启用auto_match_enabled: true(仅在User Settings中生效),并排除输入法、语法识别、Emmet/Vintage插件劫持及语法专属设置覆盖等干扰。

Sublime Text 本身不依赖插件就能自动闭合大括号 {,关键在配置项 auto_match_enabled 是否真正生效——装一堆插件反而可能破坏它。
为什么“装插件”是误导性思路?
Sublime 的括号自动补全({ → {})由原生设置 auto_match_enabled 控制,不是插件功能。Emmet、Tag、BracketHighlighter 等插件都不参与这个逻辑;相反,Emmet 和 Vintage 会劫持 { 按键,导致补全直接失效。
常见误区包括:
- 以为装了 Emmet 就能自动补
}—— 实际上 Emmet 默认禁用该行为,且优先级高于原生设置 - 在 Default 设置里改了
auto_match_enabled—— Sublime 只读取 User 设置(右侧面板) - 语法识别错误(如显示为 Plain text)或输入法为中文 —— 此时哪怕配置正确也无反应
怎么让 { 真正自动补 }?
打开 Preferences → Settings – User(右侧),确保有且仅有这一行生效:
{"auto_match_enabled": true}
如果已有其他配置,请检查:
- 逗号是否合法(最后一项不能多逗号)
- 引号是否为英文双引号
- 没有拼写错误(比如写成
auto_match_enable或automatch_enabled) - 保存后无需重启,立刻生效
哪些情况会让它“看起来没用”?
即使 auto_match_enabled 是 true,以下场景仍不会补全:
- 光标前紧邻字母/数字/下划线(如
if{、func{)——Sublime 主动跳过,防止干扰语义 - 当前文件语法被识别为
Plain text或某些插件覆盖的 scope(如 Vue 单文件组件里部分区域) - 输入法为中文,按出的是全角
{或软键盘花括号——Sublime 只响应 ASCII{ - 右下角语法名点击 → Settings – Syntax Specific 中存在
"auto_match_enabled": false—— 这个设置优先级最高,且不报错、不提示
想关引号但留大括号?用细粒度开关
如果只想要 {} 补全,但不想让 ' 和 " 自动配对,可以这样写:
{"auto_match_enabled": true, "auto_close_quotes": false}
注意:auto_close_brackets 在新版中存在,但它必须配合 auto_match_enabled: true 才生效,且不能单独启用——它只是控制圆括号、方括号的开关,不影响大括号。
真正容易被忽略的是语法专属设置和输入法状态,这两处不出错、不警告,却能让所有配置形同虚设。
















