答案:Ctrl+K Ctrl+S打开后,带黄色感叹号的条目即表示冲突,鼠标悬停可查看when条件重叠情况;搜索高频组合键出现多个绿色▶来源即确认实际覆盖;右键“将键添加到”是安全覆盖,“重置键绑定”是恢复默认,“删除键绑定”配合-前缀禁用插件命令。

Ctrl+K Ctrl+S 打开后怎么一眼看出冲突?
图形界面里带黄色感叹号的条目就是冲突信号,不是警告,是明确提示“这个快捷键绑了不止一个命令”。鼠标悬停能看到所有命中项的 when 条件,比如 editorTextFocus 和 terminalFocus 同时满足某条绑定,就说明它可能在编辑器和终端里都生效——这正是冲突温床。
搜索框输入 ctrl+p 或 shift+alt+f 这类高频组合,列表里出现多个来源(Default、GitLens、Prettier)且都是绿色 ▶ 状态,基本可以断定已实际覆盖。灰色条目不用管,它只是当前上下文不匹配,不是失效。
右键菜单里“将键添加到”和“重置键绑定”区别在哪?
“将键添加到”是安全覆盖:你选中某个命令(比如 editor.action.formatDocument),点它,再按新组合键,VSCode 自动往 keybindings.json 末尾加一条带完整 when 条件的新规则,不删旧的,靠优先级接管。
“重置键绑定”是直接删掉你用户层的自定义,恢复成扩展或默认值;如果那条默认绑定本身就有冲突,重置后问题照旧。它适合误操作后快速回退,不适合解决根源冲突。
- 想保留原功能但换按键 → 用“将键添加到”
- 想彻底丢掉某条自定义 → 用“重置键绑定”
- 想禁用插件绑定但不卸载插件 → 右键选“删除键绑定”,然后手动补
-前缀规则
为什么点了“添加键”后快捷键还是没反应?
常见三类静默失效,图形界面不报错也不提醒:
-
when条件写错,比如"editorTextFocu"少个s,整条配置被 VSCode 忽略 - 新加的键绑定没触发对应上下文,例如你绑了
"when": "editorTextFocus",却在设置页按它,自然不执行 - 系统或输入法劫持了按键,尤其是中文输入法下
ctrl+/常被转成中英文切换,关掉输入法再试一次比改十次 JSON 更快
另外注意:keyboard.dispatch 默认是 "character",非美键盘(如中文)可能把 ctrl+; 识别成 ctrl+:,得去 settings.json 改成 "keyCode" 才能准确定位。
禁用 GitLens 或 Vim 的快捷键时,- 前缀怎么写才有效?
减号语法只认完整命令 ID,不是功能名也不是插件名。正确做法是:在快捷键面板里找到 GitLens 绑定的 ctrl+shift+h 那条,右键 → “复制命令 ID”,粘贴过来,前面加 -:
[{"key":"ctrl+shift+h","command":"-gitlens.showQuickFileHistory"}]别手敲命令名,也别漏掉引号或逗号;这条只取消绑定,不干扰插件其他功能。但取消后该快捷键就空了,得立刻补一条新绑定,否则等于废掉。
真正容易被忽略的是:Vim 扩展会动态注册大量键位,且 when 条件常设为恒真,光禁用一两条没用,得进它的扩展设置关掉 vim.enableNeovim 或整体禁用 Vim 模式。


















