先用sublime.log_input(True)验证按键是否进入Sublime,无输出即被系统或输入法拦截;有输出则按Default→插件Default→User顺序排查覆盖,严格检查JSON语法。

怎么确认热键到底被谁占了
别猜,直接让 Sublime 自己说话。按 Ctrl+` 打开控制台,输入 sublime.log_input(True) 回车,再按你怀疑冲突的组合键(比如 Ctrl+/ 或 Cmd+Shift+P)。如果控制台完全没输出,说明按键根本没进 Sublime —— 问题在系统层或输入法层。
常见拦截点:
• Windows:NVIDIA 控制面板「热键」、Intel Graphics Command Center「快捷键」、搜狗/QQ 拼音默认的 Ctrl+Shift
• macOS:系统设置 → 键盘 → 快捷键 → 「输入源」里是否启用了 Cmd+Space 或 Cmd+Shift+P,还有「Spotlight」是否占了同名组合
如何覆盖插件抢走的 Ctrl+/ 注释快捷键
很多用户发现装了 Vintage 或 Emmet 后 Ctrl+/ 不再触发 toggle_comment,是因为这些插件在自己的 Default.sublime-keymap 里重写了它,且加载顺序在你的 User 文件之前。
正确做法不是删插件,而是精准覆盖:
• 按 Ctrl+Shift+P 输入 Preferences: Key Bindings,左右并排打开 Default 和 User 文件
• 在左侧 Default 中确认原绑定是:{"keys": ["ctrl+/"], "command": "toggle_comment"}
• 在右侧 User 中插入相同 keys,但确保它在数组末尾(后加载者胜):
[{"keys": ["ctrl+/"], "command": "toggle_comment"}]• 保存前务必检查:
"keys" 和 "command" 必须用英文双引号;数组结尾不能多逗号;不支持 // 注释macOS 下 Cmd+Shift+P 被 Spotlight 截胡怎么办
这不是 Sublime 的错,是 macOS 把 Cmd+Shift+P 设为全局快捷键,优先级高于任何应用。强行禁用 Spotlight 不现实,更稳的解法是换一个系统不碰的组合:
• 在 Preferences > Key Bindings – User 中添加:
[{"keys": ["ctrl+shift+p"], "command": "show_overlay", "args": {"overlay": "command_palette"}}]• 或者选更冷门的:
["cmd+alt+p"]、["ctrl+alt+shift+p"]• 切到中文输入法下实测新组合是否响应;若仍无效,说明 Karabiner、BetterTouchTool 等工具也在劫持,需一并排查
注意:不要删掉原有的
Cmd+Shift+P 绑定,某些插件(如 Package Control)内部调用依赖它
Esc 键失效为什么改 Key Bindings 没用
Esc 关命令面板、关搜索框、关替换栏,是 Sublime 内核硬编码行为,压根不走 .sublime-keymap 流程。你在 User 文件里加 {"keys": ["escape"], "command": "hide_panel"} 不仅无效,还会破坏原生逻辑——比如按下去后面板卡住不隐藏。
如果 Esc 真的没反应:
• 先运行 subl --safe-mode:若恢复,说明是插件劫持(Vintage 默认把 Esc 当退出插入模式用,Origami 默认设 close_on_escape)
• Vintage 用户去 Preferences → Package Settings → Vintage → Settings,设 "exit_insert_mode_on_escape": false
• Origami 用户关掉其 close_on_escape 选项
• 若 --safe-mode 下仍无效,且 sublime.log_input(True) 无输出,问题在 macOS 未勾选「使用 F1、F2 等键作为标准功能键」,或键盘固件层吞掉了 Esc


















