F5 和 Ctrl+Shift+B 失灵是因扩展或配置劫持,可用快捷键排查器定位劫持者,通过清空 keybindings.json 或添加带减号的禁用规则快速修复,无需重装。

F5 和 Ctrl+Shift+B 失灵,不是 VSCode 坏了,而是被扩展或配置劫持了——直接清空 keybindings.json 或用 Troubleshooter 定位,比重装快十倍。
怎么快速确认是哪个扩展抢了 F5 或 Ctrl+Shift+B
别猜,用 VSCode 自带的按键排查器:按 Ctrl+Shift+P → 输入并执行 Developer: Toggle Keybinding Troubleshooter,然后立刻按 F5 或 Ctrl+Shift+B。面板会列出所有匹配项,包括来源扩展、命令 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 是最干净的重置方式:
按 Ctrl+Shift+P → 输入并执行 Preferences: Open Keyboard Shortcuts (JSON),确认路径是用户目录下的 keybindings.json(如 ~/.config/Code/User/keybindings.json),然后把整个文件内容删光,只留一个空数组 [],保存即可。
注意:
- 不是注释掉,不是留空行,也不是写成
{} - 这个操作只影响快捷键,不碰
settings.json、扩展、主题或代码片段 - 如果清空后仍异常,说明有扩展在后台动态注册且
when条件始终为真,需回到快捷键面板搜索该组合键,找到对应扩展条目点垃圾桶图标移除
自定义快捷键时最容易被忽略的坑
手动改 keybindings.json 后没生效,大概率栽在这三处:
-
when表达式拼错(比如"editorTextFocu"少了个s),VSCode 不报错也不提示,整条直接失效 - JSON 语法错误(多逗号、少引号),VSCode 不校验也不提醒,整段静默丢弃
- 没加
when条件导致全局生效,和终端、系统快捷键打架(比如Ctrl+Shift+P在 Windows 下可能被微信截图拦截)
复杂点在于:同一个快捷键可能被多个扩展同时绑定,而 VSCode 只执行第一个 when 为真的;你看到的“生效项”,未必是你以为的那个。











