Ctrl+B/Cmd+B失效90%因按键未进入Sublime或被覆盖:先用sublime.log_input(True)确认是否输出,无输出即被系统/输入法/插件截获;有输出则检查Key Bindings中是否被插件(如Vintage)重绑定为非build命令,需在User.sublime-keymap中精准添加[{"keys": ["ctrl+b"], "command": "build"}]并确保JSON格式合法。

“一键运行”快捷键(如 Ctrl+B / Cmd+B)失效,90% 不是 Sublime 坏了,而是它压根没收到按键——或者收到了,但被更高优先级规则覆盖、或根本没绑定到 build 命令。
按键连 Sublime 都没进到,别改 Key Bindings
按 Ctrl+` 打开控制台,输入 sublime.log_input(True) 回车,再按 Ctrl+B(Windows/Linux)或 Cmd+B(macOS)。如果控制台**完全没输出**,说明信号被外部截断:
- Windows:NVIDIA 控制面板 → 「热键」或 Intel Graphics Command Center → 「快捷键」中启用了
Ctrl+Alt+方向键类组合,会吞掉整个Ctrl修饰链 - macOS:系统设置 → 键盘 → 快捷键 → 「Spotlight」或「输入源」里是否占用了
Cmd+B(少见但可能) - 所有平台:搜狗、QQ 拼音等输入法常劫持
Ctrl+Shift或Ctrl+Space,间接干扰焦点,导致Ctrl+B无法触发
Ctrl+B / Cmd+B 绑定的不是 build 命令
Sublime 的构建功能由 build 命令驱动,但很多插件(尤其是 Vintage、Origami、GitGutter)会悄悄把 Ctrl+B 绑定到其他行为(比如切换侧边栏、打开 Git 面板),且不提示。验证方法:
- 按
Ctrl+Shift+P输入Preferences: Key Bindings,左右并排打开两个文件 - 在左侧
Default.sublime-keymap中搜索"ctrl+b"或"cmd+b",确认原生绑定是{"keys": ["ctrl+b"], "command": "build"} - 在右侧
User.sublime-keymap和Packages/下各插件目录中全局搜索相同keys字段,看谁最后覆盖了它 - 临时禁用高危插件:
Package Control: Disable Package→ 依次关掉Vintage、Origami、GitGutter,测试是否恢复
手动重绑 Ctrl+B 到 build 的实操要点
直接在 User.sublime-keymap 中加一条规则即可,但必须满足三个硬条件:
- 整个文件必须是合法 JSON 数组格式,哪怕只写一条也要用方括号包裹:
[{"keys": ["ctrl+b"], "command": "build"}] -
command名必须准确——不能写成run_build或execute_build,实测唯一有效的是build - 不要加
context(除非你明确想限制场景),否则在非构建上下文(如 Markdown 文件)里就完全不响应 - 保存后立即生效,但若某个插件的
Default.sublime-keymap也定义了ctrl+b且加载更晚,你的规则仍会被盖掉
为什么删了 User.sublime-keymap 内容还无效?
清空该文件(仅留 [])是最干净的起点,但如果仍不恢复 Ctrl+B,说明问题不在用户层:
- 插件自带的
Default.sublime-keymap文件仍在生效(比如Packages/Vintage/Default.sublime-keymap),它们优先级高于默认绑定,且不会被清空User文件影响 - 某些插件(如
Origami)会把Esc、Ctrl+B等键设为“窗口管理快捷键”,这类绑定走的是插件内部逻辑,不经过.sublime-keymap流程 -
Preferences.sublime-settings中若误写了"keymap": []这类非法字段,会导致整个配置解析失败,连带影响快捷键加载


















