全局禁用括号和引号自动补全只需将"auto_match_enabled": false写入User Settings,但必须同步检查Syntax Specific设置是否覆盖,并排除Emmet/Vintage插件劫持输入,否则配置无效。

禁用括号自动配对,只需设 auto_match_enabled 为 false,但必须同时检查语法专属设置和插件干扰,否则改了也无效。
怎么全局关掉括号和引号自动补全
Sublime 的括号、引号、方括号、花括号、单双反引号的自动补全,全部由一个开关统一控制:auto_match_enabled。设为 false 就全关,设为 true 就全开——没有“只关 () 留 ""”的原生选项。
操作步骤很简单:
- 打开
Preferences → Settings,专注看右侧「User Settings」面板 - 添加或修改为这一行:
"auto_match_enabled": false - 确保 JSON 格式合法:引号闭合、逗号位置正确(比如前面有其他配置时末尾要加逗号)、没拼错成
auto_match_enable或auto_match_enableds - 保存(
Ctrl+S),立刻生效,不用重启、不重载、不刷新
为什么改了 auto_match_enabled 还是自动补全
最常见原因是语法专属设置(Syntax Specific)在静默覆盖。它的优先级比用户设置更高,且不报错、不提示,很容易被忽略。
验证和修复方法:
- 打开一个不生效的文件(比如
config.json或main.py) - 点击编辑器右下角显示的语法名(如 “JSON”、“Python”)→
Settings – Syntax Specific - 检查右侧是否有
"auto_match_enabled": false或"auto_match_enabled": true:有就删掉,或统一改成false - 如果右侧为空,手动加一行:
"auto_match_enabled": false - 保存后立即生效,该设置只影响当前语法类型对应的所有文件
Emmet 和 Vintage 插件会让 auto_match_enabled 彻底失效
这两个插件会直接拦截 (、{、'、" 等按键事件,导致 auto_match_enabled 根本没机会运行。这不是 bug,是它们的设计逻辑。
临时验证方式:
- 菜单栏
Preferences → Package Control → Disable Package,逐个禁用Emmet和Vintage - 禁用后输入测试,若补全行为消失,说明就是它们干扰
长期兼容方案:
-
Emmet用户:在Preferences → Package Settings → Emmet → Settings – User中添加"disable_auto_insertion": true -
Vintage用户:在Preferences → Package Settings → Vintage → Settings – User中添加"vintage_start_in_command_mode": false
别把 match_brackets 高亮和自动补全搞混
match_brackets 控制的是光标停在括号上时另一侧是否高亮,和自动补全完全无关。它默认开启,但效果依赖语法定义(比如 Vue/JSX 文件中可能不生效)。很多人以为补全没发生,其实是补全已触发(光标停在中间),只是高亮太淡或没出现,误判为失败。
确认补全是否真生效,最简单办法:
- 输入
(后立刻按→(右方向键):如果光标跳到)右侧,说明补全已发生 - 补全后按
Ctrl+Z可撤销一次,比手动删更稳
最容易被忽略的点,永远是右下角那个语法名菜单——它藏得深,却拥有最高覆盖权限。哪怕你把用户设置调得再准,只要当前文件类型悄悄开了或关了 auto_match_enabled,结果就完全相反。

















