sublime text 自动配对需手动启用 auto_match_enabled 为 true,且须检查语法专属设置和 emmet/vintage 插件是否劫持输入,六组英文半角符号才生效。

Sublime Text 的括号、引号自动配对不是“默认就稳”,必须显式设 auto_match_enabled 为 true,否则它根本不会响应任何输入——连试都不试。
确认并修复 User Settings 中的 auto_match_enabled
这个开关控制所有基础符号的自动闭合行为:输入 ( 补 ),输入 " 补 ",包括 {}、[]、''、``。它和 match_brackets(高亮)完全无关。
- 打开 Preferences → Settings,只看右侧「User Settings」面板
- 确保有且仅有一行有效 JSON:
{"auto_match_enabled": true} - 如果已有其他配置,检查是否拼错成
auto_match_enable、多逗号、引号未闭合 - 保存即生效,无需重启;格式出错会导致整段配置失效,补全静默关闭
检查当前文件类型的 Syntax Specific 设置
即使用户设置里是 true,你在 config.json 或 main.py 里敲 ( 没反应,大概率是语法专属设置在静默覆盖——它优先级最高,且不报错不提示。
- 打开那个不生效的文件,点击右下角语法名(如
JSON、Python) - 选 Settings – Syntax Specific
- 检查右侧是否有
"auto_match_enabled": false:有就删掉,或改成true - 如果是空文件,直接加一行:
"auto_match_enabled": true
排查 Emmet 和 Vintage 插件劫持输入
这两个插件会在按键按下瞬间拦截事件:Emmet 把 {、[、" 当缩写前缀处理;Vintage 把单引号 ' 当命令触发符。它们吃掉了原始输入,auto_match_enabled 根本收不到信号。
- 临时验证:菜单栏 Preferences → Package Control → Disable Package,逐个禁用
Emmet和Vintage,再试输入 -
Emmet用户可保留插件,在其用户设置中加:"disable_auto_insertion": true -
Vintage用户可在 Preferences → Package Settings → Vintage → Settings – User 中加:"vintage_start_in_command_mode": false
别把 match_brackets 高亮和补全搞混
auto_match_enabled 控制“输不输”(敲 ( 时要不要自动补),而 match_brackets 控制“亮不亮”(光标停在括号上时另一侧是否高亮)。很多人开了补全却没开高亮,结果补全真发生了(光标跳到中间),自己却以为失败。
-
match_brackets默认开启,但效果受语法定义限制;它不参与补全逻辑 - 若想确认补全是否发生,注意光标位置:成功时,光标会停在左右符号中间,而不是跳到行尾
- 六组支持符号全是英文半角:
()、[]、{}、""、''、``;中文符号或全角一律不触发
最常被忽略的是语法专属设置和插件劫持——它们不报错、不提示、不弹窗,只让补全“看起来没反应”。调完 auto_match_enabled 后,务必打开一个具体文件,点右下角语法名,进 Syntax Specific 看一眼。











