ctrl+b没反应需分两步排查:先确认按键是否被系统截断(如输入法、显卡控制面板占用),再检查sublime内绑定冲突(加载顺序:default→插件→user)及json语法错误。

Ctrl+B没反应?先看按键进没进Sublime
执行 sublime.log_input(True) 后按 Ctrl+B,控制台完全没输出,说明信号在系统层就被截断了,和 User.sublime-keymap 无关。Windows 用户重点检查 NVIDIA 控制面板或 Intel Graphics Command Center 里的热键设置;中文输入法(搜狗、QQ 拼音)常默认占用 Ctrl+B 或 Ctrl+Shift+B 切换软键盘——切到英文输入法再试一次。macOS 用户需去「系统设置 → 键盘 → 快捷键」关闭「Spotlight」和「输入源」中同名组合。
按键进了Sublime但没触发构建?查加载顺序和覆盖者
如果控制台输出类似 key evt: ctrl+b,说明按键已送达,问题出在绑定层。Sublime 加载快捷键的顺序是:Default(内置)→ 插件的 Default.sublime-keymap → User.sublime-keymap。后加载者静默覆盖前加载者,且不报错。
- 按
Ctrl+Shift+P输入Preferences: Key Bindings,左右并排打开两个文件 - 在左侧(Default)搜索
"ctrl+b",确认原命令是build - 在右侧(User)和所有插件目录(
Packages/插件名/Default.sublime-keymap)里全局搜索相同"keys"字段 - 高危插件优先排查:
Vintage、Emmet、Origami、Terminus
User.sublime-keymap 写错一个字符就等于没写
这个文件是纯 JSON 数组,语法错一点整份配置就被 Sublime 静默忽略,右下角红字提示一闪而过,极易错过。
- 必须用英文双引号:
"keys"不是keys,"command"不是command - 数组末尾不能多逗号:
["ctrl+b"],是错的,["ctrl+b"]才对 - 不支持
//或/* */注释;想临时禁用某条,改成"command": "not_a_real_command" - 常见低级错误:
toggle_comment写成toggle_comments、keys字段漏方括号、用了中文引号
为什么禁用插件后 Ctrl+B 还不生效?
因为插件的 Default.sublime-keymap 加载在系统之后、User 之前,即使你删了 User 里的条目,插件那条仍生效。最可靠验证方式是运行 subl --safe-mode:如果快捷键恢复,就坐实是插件冲突;再用 Package Control: Disable Package 逐个关,不用猜。另外注意 context 字段——同一按键在不同上下文(如 "key": "setting.is_widget")可能绑定不同行为,表面没冲突,实则“条件性失效”。











