快捷键没反应,先确认按键是否进入sublime:打开控制台执行sublime.log_input(true),无输出说明被系统或输入法拦截;有输出则检查键绑定加载顺序、插件冲突、json语法错误及跨平台super键使用。

快捷键没反应,先看按键进没进 Sublime
绝大多数“快捷键失效”问题,根本不是 Sublime 配置错了,而是按键压根没传进来。按 Ctrl+`(Windows/Linux)或 Cmd+`(macOS)打开控制台,输入:sublime.log_input(True)
然后按你怀疑失效的组合键(比如 Ctrl+Shift+P)。如果控制台**完全没输出**,说明系统或外围软件已截获:
- Windows 用户重点查 NVIDIA 控制面板或 Intel Graphics Command Center 里的热键(如
Ctrl+Alt+方向键) - 搜狗、QQ 拼音等输入法默认占用
Ctrl+Space或Ctrl+Shift,切英文输入法再试 - macOS 用户去「系统设置 → 键盘 → 快捷键」关掉 Spotlight 的
Cmd+Space和「输入源」里的同名切换键
确认按键进了 Sublime,但命令不执行
如果控制台输出类似 key evt: ctrl+shift+p command: show_overlay {...},说明按键已送达,问题出在绑定层。Sublime 加载顺序是:Default.sublime-keymap → 插件自带的 Default.sublime-keymap → Preferences.sublime-settings(不影响快捷键)→ Key Bindings – User。后加载者静默覆盖前一个:
- 按
Ctrl+Shift+P输入Preferences: Key Bindings,左右并排打开文件 - 在左侧(Default)搜你想用的组合,比如
"ctrl+/",确认原命令是toggle_comment - 在右侧(User)和所有插件目录(
Packages/插件名/Default.sublime-keymap)里全局搜索同一"keys"字段 - 高频冲突插件:Vintage、Emmet、Origami、GitGutter —— 它们的
Default.sublime-keymap文件常覆盖默认行为
User.sublime-keymap 写错 JSON 就等于没写
User.sublime-keymap 是纯 JSON 数组,语法错一点整份配置就静默失效,右下角只闪一下红字提示,极易忽略:
- 必须用英文双引号:
"keys"不是keys,更不能用中文引号或单引号 - 数组结尾不能多逗号:
["ctrl+alt+f"],是错的,["ctrl+alt+f"]才对 - JSON 不支持注释,想禁用某条绑定,要么删整行,要么改成无效命令:
"command": "not_a_real_command" - 常见拼写错误:
toggle_comments(多 s)、format_code(实际可能是reindent或插件专属命令)
跨平台快捷键必须用 super,别硬写 ctrl
macOS 的 Command 键、Windows/Linux 的 Ctrl 键,在 Sublime 内部统一用 super 表示。直接复制粘贴 ctrl+shift+f 到 macOS 会失效:
- 错误写法:
{"keys": ["ctrl+shift+f"], "command": "show_panel", "args": {"panel":"find"}} - 正确写法:
{"keys": ["super+shift+f"], "command": "show_panel", "args": {"panel":"find"}} - 注意:
super在 macOS 映射为 Cmd,在 Windows/Linux 映射为 Ctrl —— 这是唯一能三端自动适配的语义键名 -
Esc、Tab等键是内核硬编码行为,写进User.sublime-keymap不仅无效,还可能破坏 UI 逻辑
真正麻烦的不是改哪一行,而是得一层层排除:系统拦截 → 输入法劫持 → 插件覆盖 → JSON 语法错 → context 条件不满足。多数人卡在第一层就去改配置,白调半天。











