应修改key bindings – user文件,用标准json格式(英文双引号、无多余逗号、无注释)绑定如ctrl+shift+p等不冲突组合;先运行sublime.log_input(true)确认按键是否进入sublime,再检查系统快捷键设置与ignored_packages配置。

Sublime Text 的系统级快捷键冲突(比如 macOS 的 Spotlight、输入法切换)不能靠“禁用系统功能”解决,必须通过编辑特定配置文件主动绕开。关键不是改哪,而是改对哪、改得干净。
Key Bindings – User 文件必须用标准 JSON 格式
用户自定义快捷键只在 Key Bindings – User 文件中生效,但 Sublime 对语法错误零容忍:一个中文逗号、漏掉引号、数组末尾多加逗号,整个文件都会被静默忽略,且不报错。
- 所有键名和字符串值必须用英文双引号包裹,例如:
{"keys": ["ctrl+shift+p"], "command": "show_overlay", "args": {"overlay": "command_palette"}} - 禁止使用单引号、中文标点、注释(
//或/* */在 JSON 中非法) - 修改后务必保存(
Cmd+S),Sublime 会立即重载,无需重启 - 如果新增绑定没反应,先在控制台运行
sublime.log_input(True),按快捷键看是否输出事件——没输出说明系统层已拦截,不是配置问题
Preferences.sublime-settings 中的 ignored_packages 是静默屏蔽开关
插件文件夹明明放在 Packages/ 下,却搜不到命令、快捷键无效、菜单不出现?大概率是被 ignored_packages 列表主动跳过加载。
- 打开
Preferences → Settings,检查右侧用户配置中是否存在"ignored_packages"字段 - 常见值如
["Vintage", "Anaconda", "Origami"],如果你刚放进去的插件叫Emmet,而它也在这个列表里,就不会加载 - 删掉对应项,或整行注释掉(虽然 JSON 不支持注释,但 Sublime 允许把整行变成字符串来临时禁用)
- 保存后必须完全退出 Sublime(右键任务栏选「退出」,不是关窗口),再重启才生效
macOS 下需额外检查系统级快捷键抢占
Cmd+Shift+P、Cmd+Space、Esc 等组合在 macOS 上常被 Spotlight、输入源切换或键盘固件层截获,Sublime 根本收不到按键事件。
- 打开「系统设置 → 键盘 → 快捷键 → 聚焦」,取消勾选
Cmd+Space;下拉到「输入源」,禁用相同组合 - Esc 不关闭搜索框?先运行
sublime.log_input(True)按 Esc:若控制台无任何输出,说明按键未进 Sublime,问题在系统设置或「使用 F1、F2 等键作为标准功能键」未勾选 - 验证方式:切到中文输入法,按你新设的快捷键(如
Ctrl+Shift+P),看命令面板是否响应;不响应就说明还有其他软件(如 Alfred、Raycast)在抢键
Package Control 安装脚本失败时,残留文件必须手动清空
Package Control: Install Package 命令不出现,不是插件没装好,是包管理器本身没加载成功。这时候装任何插件都白搭。
- 先确认 ST 版本:控制台运行
sublime.version(),返回4xxx是 ST4,必须用带hashlib.sha256校验的新安装脚本;3xxx才能用旧逻辑 - 进
Installed Packages/目录,删掉所有含Package Control字样的文件(包括Package Control.sublime-package) - 同时检查
Packages/目录下是否有Package Control/文件夹,有就一并删掉 - 重启 Sublime 后再执行对应版本的官方安装脚本,控制台必须输出
Success或写入路径日志,否则就是静默失败
真正容易被忽略的是:Sublime 的 ignored_packages 和系统快捷键设置之间没有联动提示,它不会告诉你“你刚禁用的插件其实正被系统快捷键挡住”。排查必须分层——先确认按键是否到达编辑器,再查配置是否生效,最后才动插件本身。











