直接设"auto_match_enabled": false可全局关闭所有成对符号自动补全;需在user settings中添加该配置,注意语法专属设置和emmet/vintage插件可能覆盖或劫持该功能。

直接设 "auto_match_enabled": false 就能禁用所有括号、引号的自动配对,不用重启、不删插件、也不用改键绑定——但这个开关一关,(、[、{、"、' 全部失效,没法只关圆括号留引号。
怎么全局关掉括号和引号自动配对
打开 Preferences → Settings,专注右侧「User Settings」面板,在 JSON 对象里加这一行:
{"auto_match_enabled": false}
保存(Ctrl+S)后立刻生效。常见翻车点:
- 误改左侧默认设置——它是只读的,改了没用
- 拼错键名,比如写成
auto_match_enable或auto_match_enableds - JSON 格式错误:前面或后面多逗号、引号没闭合、换行缩进不合法
- 以为“默认是 true”就等于开启——Sublime 不继承、不回退,你没写,它就当这个功能不存在
为什么改了 User Settings 还在自动补全?优先级陷阱在这里
语法专属设置(Settings – Syntax Specific)优先级高于用户设置,且静默覆盖,不报错也不提示。比如你在 main.py 里发现 ( 还是自动出 (),大概率是 Python 语法自己开了开关。
操作步骤:
- 打开一个不生效的文件(如
config.json) - 点击右下角语法名(如
JSON),选Settings – Syntax Specific - 看右侧是否有
"auto_match_enabled": true或"auto_close_quotes": true——有就删掉或改成false - 如果右侧为空,手动加一行
"auto_match_enabled": false,保存即刻生效
Emmet 和 Vintage 插件会劫持输入,不是设置失效
这两个插件直接拦截 (、{、" 等按键事件,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
想只关引号、保留括号?用细粒度参数
Sublime 较新版本支持拆分控制,"auto_close_quotes": false 和 "auto_close_brackets": true 可共存,且优先级高于 auto_match_enabled。
例如:
{
"auto_close_quotes": false,
"auto_close_brackets": true
}
这样输入 " 不再补 "",但 ( 仍会出 ()。注意:
- 只要这两个参数中任意一个存在,
auto_match_enabled的值就不再起作用 - 不写
auto_close_brackets时,它默认为true,括号照常补全 -
match_brackets是高亮配对括号的,和“输不输”完全无关,别混淆
最常被忽略的是语法专属设置的位置——它藏在右下角语法名菜单里,不点开根本看不到;哪怕用户设置写得再准,只要当前语法悄悄关了开关,补全就永远不会发生。











