全局禁用括号和引号自动配对,只需在user settings中设"auto_match_enabled": false,但必须同步检查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_enabled 还是自动补全
最常见原因是语法专属设置(Syntax Specific)静默覆盖用户配置,且不报错、不提示:
- 打开一个不生效的文件(比如
config.json),看右下角状态栏显示的语法名(如 “JSON”) - 点该语法名 →
Settings – Syntax Specific - 检查右侧是否已有
"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 用户可保留插件,在其用户设置中加:
"disable_auto_insertion": true - Vintage 用户可在
Preferences → Package Settings → Vintage → Settings – User中设:"vintage_start_in_command_mode": false - 别把
match_brackets(高亮配对括号)和自动补全搞混;它不影响“输不输”,只影响“亮不亮”
想只关引号、留括号?用细粒度参数
较新版本 Sublime 支持拆分控制,但要注意优先级规则:
-
"auto_close_quotes": false关双/单引号,"auto_close_brackets": true保留()、[]、{} - 只要这两个参数存在,
auto_match_enabled的值就完全被忽略 - 如果只写
"auto_close_quotes": false,auto_close_brackets默认为true,括号照常补全 - 原生不支持“只关
{},留()和""”,真要这种精度,得靠 BracketHighlighter + 自定义键绑定,维护成本高,多数人没必要
最容易被忽略的是:语法专属设置和插件劫持这两层覆盖,它们比用户设置优先级更高,且不会给出任何提示。改完 auto_match_enabled 后,务必在目标文件类型里验证右下角语法名对应的 Settings – Syntax Specific 是否干净。











