cmd+shift+p在macos上失效是因spotlight或输入法劫持,需在系统设置中修改快捷键;cmd+b冲突源于finder/dock系统绑定,应优先删除对应规则;键绑定文件json语法错误会导致静默失效。

Cmd+Shift+P 在 macOS 上打不开命令面板?先查 Spotlight
这不是 Sublime 的配置问题,是 macOS 系统在底层截获了 Cmd+Shift+P —— 实际上它根本没传进编辑器。Spotlight 默认绑定的就是这个组合,优先级高于任何应用。
验证方式:打开「系统设置 → 键盘 → 快捷键 → 聚焦」,看 Cmd+Space 是否启用;再下拉到「输入源」,检查「选择上一个输入法」是否也占了 Cmd+Space 或 Ctrl+Space。这两处任一启用,都可能导致 Cmd+Shift+P 失效(尤其输入法劫持时)。
- 临时改系统快捷键:把 Spotlight 改成
Cmd+Alt+Space,输入法切换改成Ctrl+Space - 不推荐禁用 Spotlight,它对 macOS 生态很关键
- 改完不用重启 Sublime,直接试新组合
想改 build 命令的快捷键?别动 Cmd+B,先看它被谁占了
Cmd+B 是 Sublime 默认构建快捷键,但在 macOS Ventura 及更新版本中,它常被 Finder 的「显示/隐藏边栏」或 Dock 的「显示最近应用」覆盖。这不是插件导致的,是系统级“应用无关快捷键”行为。
排查路径:系统设置 → 键盘 → 快捷键 → 应用快捷键,搜索 Cmd+B,看是否有 Finder 或 Dock 的条目。如果有,直接删掉那条规则。
- 若插件(如 SideBarEnhancements)也绑了
Cmd+B,优先去插件设置里关掉,而不是全局重绑 - 重绑时建议加修饰键提高唯一性,比如
ctrl+shift+b或cmd+alt+b - 在
Key Bindings – User中写:{"keys": ["ctrl+shift+b"], "command": "build"}
sublime.log_input(True) 是定位冲突的第一步,不是最后一步
很多人开了日志就以为万事大吉,其实只看输入日志远远不够。比如按 Cmd+B 后控制台输出 key evt: cmd+b,说明按键已进入 Sublime;但若没触发构建,就得继续查命令日志。
正确流程是两步走:
- 先输
sublime.log_input(True),确认按键是否被系统/输入法/显卡工具截断 - 若输入有日志,再输
sublime.log_commands(True),观察是否执行了build命令 - 如果命令没执行,说明是插件覆盖或上下文(context)不匹配(比如某条绑定只在
source.python下生效)
用户键绑定文件(Key Bindings – User)写错 JSON 就静默失效
Sublime 不报语法错误,但只要 User.sublime-keymap 里有一个中文逗号、引号不闭合、数组末尾多逗号,整个文件就会被忽略——你新加的绑定一条都不生效,还误以为是逻辑问题。
安全写法必须满足三点:
- 所有字符串(包括
keys和command)必须用英文双引号包裹,不能用单引号或中文引号 - 数组以
[开头、]结尾,每项对象后跟英文逗号,最后一项**不能有逗号** - 禁用某条绑定不要注释(JSON 不支持
//),要么删整行,要么指向无效命令:"command": "not_a_real_command"
真正容易被忽略的是:插件自带的 .sublime-keymap 文件加载顺序在用户文件之后,所以即使你写了正确的绑定,也可能被某个刚更新的插件悄悄覆盖。











