立刻用Developer: Toggle Keybinding Troubleshooter定位:Ctrl+Shift+P→执行该命令→按F5或Ctrl+Shift+B,面板中带▶的绿色条目即为实际执行命令及劫持扩展;常见劫持者为GitLens、Python扩展和Remote-SSH。

怎么立刻知道哪个扩展抢走了 Ctrl+Shift+B 或 F5
VSCode 不会弹窗提醒快捷键被劫持,但 F5 和 Ctrl+Shift+B 失灵,八成是扩展在后台偷偷绑定了相同组合键。最准的验证方式不是猜,而是用内置排查器:Ctrl+Shift+P → 输入并执行 Developer: Toggle Keybinding Troubleshooter → 立刻按目标快捷键。面板中带 ▶ 的绿色条目即为当前真正在执行的命令,来源扩展名、完整 command ID 都清清楚楚。
常见劫持者包括:GitLens(默认把 Ctrl+Shift+B 绑到 gitlens.showQuickFileHistory)、Python 扩展(可能覆盖 F5 调试行为)、Remote - SSH(远程连接后动态注入绑定)。灰色条目只是 when 条件不满足,并不代表没冲突。
怎么安全禁用插件快捷键而不卸载插件
不想删 GitLens,又受不了它抢走 Ctrl+Shift+B?不用关整个插件,也不用翻设置找开关,直接在 keybindings.json 里加一条负向规则:
[{"key":"ctrl+shift+b","command":"-gitlens.showQuickFileHistory"}]注意三点:
-
command必须写全命令 ID,右键快捷键列表对应项 → “复制命令 ID” 最稳妥,手敲容易大小写或点号出错 - 这条只是取消绑定,
Ctrl+Shift+B不会变灰也不会报错,但它确实不再触发任何操作——你得自己补一条新绑定,否则等于废掉 - 别写
"command": ""或null,VSCode 会整条忽略该配置
手动改了 keybindings.json 却没生效,卡在哪几个隐性环节
手写完快捷键配置却没反应,大概率栽在这几个地方:
-
when条件写得太窄,比如只写"when": "editorTextFocus",你在终端或设置页按,自然不触发;常用组合如editorTextFocus && !editorReadonly更稳妥 - 系统或输入法根本没把按键传给 VSCode:搜狗拼音、Logitech Options、Raycast 都干过这事;临时退出它们再试一次,比改十次配置更快
- 非美式键盘用户必须检查
settings.json是否设置了"keyboard.dispatch": "keyCode",否则Ctrl+;可能被识别成Ctrl+:,导致绑定失败
为什么 Cmd+Space 在 Mac 上打不开命令面板
不是 VSCode 配置错了,是 macOS 的 Spotlight 先吞掉了这个组合键。按住 Cmd 再快速按 Space,如果 Spotlight 弹出来,就坐实了。真正要改的地方不在 VSCode,而在系统设置里:系统设置 → 键盘 → 快捷键 → 输入源,把「选择上一个输入源」和「选择下一个输入源」这两项的 Cmd+Space 和 Cmd+Shift+Space 全部取消勾选。
改完不用重启,但得点一下 VSCode 窗口让它重新获得焦点。更麻烦的是,这类冲突只在编辑器聚焦时才暴露——切到终端再按,它就不响,你以为修好了,其实只是条件没满足。


















