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

怎么确认截图工具抢了Sublime的快捷键
按 Ctrl+` 打开 Sublime 控制台,输入 sublime.log_input(True) 回车,再按你怀疑被截的组合键(比如 Ctrl+Shift+A、Print Screen 或 Cmd+Shift+4)。如果控制台**完全没输出**,说明按键根本没进 Sublime —— 大概率是截图工具在系统层拦截了。
常见截图工具拦截点:
- Windows:Snip & Sketch、ShareX、PicPick、WeGame 截图默认绑定
Ctrl+Shift+A或Print Screen - macOS:系统自带截图(
Cmd+Shift+4、Cmd+Shift+5)是全局热键,优先级高于 Sublime;第三方如 Kap、CleanShot X 也常注册Cmd+Shift+X类组合 - Linux:Flameshot、GNOME Screenshot 默认用
Print Screen,部分桌面环境还会额外绑定Shift+Print Screen
Windows 下怎么查并关掉截图工具热键
别只盯着 Sublime 配置改——先去截图工具自身设置里关或改键:
- Snip & Sketch:设置 → 快捷方式 → 关闭「使用
Win+Shift+S打开」或改成冷门组合(如Win+Alt+S) - ShareX:捕获 → 热键 → 搜索「screenshot」→ 清空或修改所有触发截图的组合
- WeGame / QQ / 微信:设置 → 热键 → 找「截图」相关项,直接禁用
- 显卡工具干扰:NVIDIA 控制面板 → 热键、Intel Graphics Command Center → 快捷键 → 关掉所有含
Print Screen或Ctrl+Shift的条目
改完立刻测试:切回 Sublime,再按原组合键,看 sublime.log_input(True) 是否有输出。有输出,说明已放行;没输出,继续查其他软件。
macOS 下截图快捷键与 Sublime 冲突的绕过方案
macOS 的 Cmd+Shift+4 和 Cmd+Shift+5 是系统级快捷键,Sublime 无法覆盖。但你可以让 Sublime “换一条路走”:
- 不改系统设置(避免影响日常截图),而是给 Sublime 绑定一个**不冲突的新组合**,例如:
[{"keys": ["ctrl+shift+4"], "command": "show_overlay", "args": {"overlay": "command_palette"}}] - 如果插件(如 SideBarEnhancements)依赖
Cmd+Shift+D复制行,而它又被 Finder 占用:进「系统设置 → 键盘 → 快捷键 → 应用快捷键」→ 搜索Cmd+Shift+D→ 删除 Finder 对应条目 - 验证是否生效:切到中文输入法(最易触发劫持),按新快捷键;若仍无效,再运行
subl --safe-mode测试——安全模式下能用,说明是某个插件在重绑定
User.sublime-keymap 写对但还是不生效?检查这三点
即使你确认按键进了 Sublime,且 User 文件语法正确,仍可能失效:
-
User.sublime-keymap是 JSON 数组,不是对象:必须用方括号[...]包裹全部内容,开头不能漏[,结尾不能少] - 多个绑定之间必须用逗号分隔,但**最后一项后面不能有逗号**——
[{"keys": ["ctrl+f"], "command": "show_panel"},]这种写法会静默失效 - 某些截图类插件(如 Clipboard History、Paste)会在自己的
Default.sublime-keymap里监听Ctrl+V或Cmd+V并做增强处理,它们加载顺序在 User 之后,会覆盖你的定义;此时需进Packages/插件名/目录手动删或改其 Default 文件
真正难缠的冲突往往藏在“按键进了编辑器,但被插件悄悄劫走”这一层——sublime.log_commands(True) 能帮你看到最终执行了哪个命令,比猜更准。











