ctrl+c没反应通常因按键被系统、输入法或显卡热键截获,而非sublime自身问题;需通过sublime.log_input(true)验证输入是否进入编辑器内部。

Ctrl+C 没反应?先确认按键是否进到 Sublime 里了
很多所谓“快捷键失效”,其实根本没走到编辑器内部。比如按 Ctrl+C 一点动静没有,不是 Sublime 忘了复制,而是系统或输入法把它截胡了。
- 右键桌面 → 打开 NVIDIA 控制面板(或 Intel Graphics Command Center)→ 关掉所有
Ctrl+Alt+方向键类热键 - Windows 设置 → 蓝牙和其他设备 → 键盘 → 查看“快捷键”开关是否被第三方键盘工具启用
- 临时切换输入法:尤其搜狗、QQ拼音默认把
Ctrl+Space或Ctrl+Shift设为中英文切换,一按就切走,Ctrl+C根本传不进来 - 最快验证:按
Ctrl+`打开 Sublime 控制台,输sublime.log_input(True)回车,再按Ctrl+C—— 如果控制台完全没输出,说明问题在 Sublime 外面
插件偷偷改了 Ctrl+/?查 Key Bindings 加载顺序
Sublime 的快捷键绑定是“后加载者胜”:默认绑定(Default)先加载,插件自带的绑定次之,最后才是你写的 User 文件。一旦某个插件(比如 Vintage、Emmet)在自己的 Default.sublime-keymap 里写了 "keys": ["ctrl+/"],它就会覆盖原生的行注释命令 toggle_comment。
- 按
Ctrl+Shift+P→ 输入Preferences: Key Bindings,左右两个文件同时打开 - 在左侧(Default)搜
ctrl+/,确认它原本该触发toggle_comment - 在右侧(User)和左侧插件目录(可通过
Preferences → Browse Packages进入)里搜索同一组合,看谁在后面定义了它 - 不想翻文件?直接禁用疑似插件:用
Package Control: Disable Package逐个关掉 Vintage、GitGutter、SideBarEnhancements,重启测试
自定义快捷键写错 JSON 就白配
Preferences → Key Bindings – User 是最终生效层,但也是最容易因格式错误失效的地方。一个逗号错位、引号漏写,整段配置就静默失效。
- 必须是合法 JSON:键名用双引号,末尾不能多逗号,数组用方括号,例如
{ "keys": ["ctrl+alt+f"], "command": "format_code" } - 删掉某条快捷键 ≠ 注释掉:JSON 不支持
//或/<em> </em>/,要禁用就删整行,或改成无效命令如"command": "not_a_real_command" - 修改后无需重启,但必须保存文件(
Ctrl+S),且确保没其他同 key 绑定在更靠后的插件里
为什么禁用插件后快捷键还冲突?上下文(context)在捣鬼
有些插件的快捷键带 "context" 条件,比如只在 Markdown 文件里生效、或仅当有选中文本时才触发。这种绑定不会明面上和你冲突,但实际按下时“有时灵有时不灵”。
- 在 Key Bindings 文件里搜
"context",留意类似这样的片段:"context": [{"key": "selector", "operator": "equal", "operand": "text.html"}] - 它意味着
Ctrl+Shift+P在 HTML 文件里可能被重定向,但在 Python 里还是原生命令 - 这类冲突没法靠删键绑定解决,得去对应插件的设置里关掉,比如 Vintage 插件可通过
Preferences → Package Settings → Vintage → Settings加上"disable_keybindings": true
Sublime 的快捷键机制看着简单,但真正卡住人的往往是“它没报错,只是不干活”——这时候最该怀疑的不是配置写错了,而是按键压根没进来,或者某个插件在你不知道的时候悄悄加了条件限制。











