装插件前先看「contributions」标签下的keybindings字段,重点关注ctrl+shift+b、ctrl+shift+p、shift shift三类高危组合;安装后立即用developer: toggle keybinding troubleshooter检测,绿色▶条目即实际生效的劫持命令。

怎么一眼识别插件是否自带高危快捷键
装插件前先看它的键盘绑定说明,比装完再排查快十倍。打开插件详情页,点「Contributions」标签,找 keybindings 字段——有这个字段的插件,大概率带默认快捷键。重点盯三类组合:ctrl+shift+b、ctrl+shift+p、shift shift,它们是冲突重灾区。GitLens、Prettier、Vim、Bracket Pair Colorizer 几乎都占过其中至少一个。
安装后立刻检查快捷键是否被劫持
别等出问题才查。新装插件后,马上按 Ctrl+Shift+P → 输入并执行 Developer: Toggle Keybinding Troubleshooter → 然后依次按这几个键:
-
F5(调试启动) -
Ctrl+Shift+B(构建任务) -
Ctrl+/(行注释) -
Shift+Alt+F(格式化)
面板里带 ▶ 的绿色条目就是真正在执行的命令,来源扩展名和完整 command ID 都写得明明白白。灰色条目不用管,它只是当前上下文不满足 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 却没生效
不是语法错了,而是卡在这几个隐性环节:
-
keybindings.json必须是合法 JSON 数组格式,哪怕只加一条,也得包在[ ]里,且每条对象后要加逗号(最后一项除外) -
when条件写得太窄,比如只写"when": "editorTextFocus",你在终端或设置页按,自然不触发;常用组合如editorTextFocus && !editorReadonly更稳妥 - 系统或输入法根本没把按键传给 VSCode:搜狗拼音、Logitech Options、Raycast 都干过这事;临时退出它们再试一次,比改十次配置更快
非美键盘用户还要额外检查 settings.json 里有没有 "keyboard.dispatch": "keyCode" —— 这个不能写在 keybindings.json 里,否则 Ctrl+; 可能被识别成 Ctrl+:。











