先确认按键是否进入sublime:执行sublime.log_input(true)后无输出说明被系统/输入法/驱动截断;有输出则检查加载顺序(default→插件default→user)和context条件。

快捷键没反应?先看按键进没进 Sublime
90% 的“快捷键失效”根本不是配置问题,而是按键压根没传进来。按 Ctrl+` 打开控制台,输入 sublime.log_input(True) 回车,再按你想查的组合键(比如 Ctrl+/ 或 Esc)。如果控制台完全没输出,说明被系统/输入法/显卡驱动截断了。
常见拦截点:
- Windows:NVIDIA 控制面板 → 「热键」、Intel Graphics Command Center → 「快捷键」里启用了
Ctrl+Alt+方向键或Ctrl+Shift类组合 - 输入法:搜狗、QQ 拼音默认占用
Ctrl+Space和Ctrl+Shift,切英文输入法再试 - macOS:系统设置 → 键盘 → 快捷键 → 「Spotlight」或「输入源」是否占用了
Cmd+Space;未勾选「使用 F1、F2 等键作为标准功能键」时,Esc可能被键盘固件吞掉
按键进了 Sublime 但功能不对?查实际执行了哪个命令
如果 sublime.log_input(True) 有输出(如 key evt: ctrl+k),再输 sublime.log_commands(True),再按同一组合键。控制台会显示真正执行的命令,比如 command: emmet_expand_abbreviation —— 这说明不是没绑定,而是被插件抢了。
Sublime 加载键绑定的顺序是:Default → 插件自带的 Default.sublime-keymap → User.sublime-keymap。后加载的静默覆盖前一个,不报错也不提示。
排查建议:
- 按
Ctrl+Shift+P输入Preferences: Key Bindings,左右并排打开 Default 和 User 文件 - 在左侧 Default 中搜索目标组合(如
"ctrl+d"),确认它原本应触发什么命令(如duplicate_line) - 在右侧 User 和所有插件目录(
Packages/Vintage/、Packages/Emmet/等)中全局搜索相同"keys"字段 - 高危插件优先排查:
Vintage、Emmet、Origami、GitGutter
User.sublime-keymap 写错 JSON 就等于没写
这个文件是纯 JSON 数组,语法错一点整份配置就被 Sublime 静默忽略——右下角可能只闪一下红字错误提示,稍不注意就错过。
必须遵守的硬规则:
- 所有键名和字符串值必须用英文双引号包裹,
"keys"不是keys,"toggle_comment"不是toggle_comments(多加 s 就失效) - 数组结尾不能多逗号:
["ctrl+alt+f"],是错的,["ctrl+alt+f"]才对 - 不支持
//注释;想临时禁用某条绑定,要么删整行,要么改成无效命令:"command": "not_a_real_command" - 路径、引号、逗号全用英文符号;中文引号、单引号、全角标点都会导致失败
Package Control 装不上或插件卡在 Installing…?本质是网络问题
装不上 Package Control,99% 是因为没走对入口:别用菜单里的 Preferences → Package Control(这选项只有装完才有),必须用 Ctrl+` 调出控制台,粘贴官方安装脚本回车。
插件卡在 Installing...,基本等于直连 https://packagecontrol.io 失败。Sublime 不支持代理、不支持镜像源,科学上网是唯一可靠解法。
替代方案(仅应急):
- 手动下载插件 ZIP 包,解压到
Packages/插件名/目录(如ConvertToUTF8) - 插件名大小写敏感:
ConvertToUTF8写成converttoutf8就搜不到 - 汉化插件
ChineseLocalizations装完自动生效,不用重启;若仍英文,说明没装成功,重装一次
最常被忽略的一点:Esc 关闭面板、Cmd+B 触发构建,这些行为是 Sublime 内核硬编码的,不走任何 .sublime-keymap 流程。往 User.sublime-keymap 里加 escape 绑定不仅无效,还会破坏原生逻辑。











