Ctrl+K Ctrl+S 是 VSCode 自带的实时快捷键面板,动态显示所有生效绑定及冲突;排查问题应优先用此面板查 when 条件和标红冲突,再用开发者工具监听 keydown 获取真实 command ID,而非依赖 Screencast 等仅显示按键动画的插件。

Ctrl+K Ctrl+S 就是实时查看器,别装插件
VSCode 自带的快捷键面板 Ctrl+K Ctrl+S(macOS 为 Cmd+K Cmd+S)不是静态列表,它实时反映当前工作区**实际生效**的所有绑定,包括插件新增的、用户覆盖的、被禁用或冲突的条目。硬装“按键显示”类插件(如 Screencast)只解决「视觉反馈」,不解决「我按了但没反应」或「为什么这个键触发了别的命令」这类核心问题。
想看到自己按下的键?用开发者工具监听 keydown
需要确认某个组合键是否被系统/输入法/其他软件劫持,或者想查清某次按键背后的真实 command ID,直接启用浏览器级事件监听:
- 打开命令面板
Ctrl+Shift+P→ 输入并执行Developer: Toggle Developer Tools - 在控制台粘贴运行:
window.addEventListener('keydown', e => console.log('Command:', e.command, 'Key:', e.key, 'Code:', e.code)) - 回到编辑器,按下你想验证的快捷键(比如
Ctrl+/),看控制台输出的e.command值——这就是 VSCode 真正执行的命令 ID
注意:该监听不会捕获被系统级拦截的按键(如某些笔记本的 Fn 组合键),也看不到 when 条件是否满足;它只告诉你「物理按键被识别成什么」。
快捷键不起作用?重点看 when 条件和冲突标红
在 Ctrl+K Ctrl+S 面板里,每条快捷键右侧的 when 字段决定它是否生效。常见陷阱:
-
editorTextFocus:只在编辑器有焦点时有效,终端或搜索框聚焦时就失效 -
terminalFocus:只在终端内生效,此时Ctrl+P可能调出终端历史而非文件搜索 - 标红的
Conflicts with:说明有另一个绑定占用了同一组合键,点开可看到来源(常是某个扩展悄悄绑定了Ctrl+Shift+P) - 修改前务必右键 →
Change Keybinding,让 VSCode 自动校验冲突,别手动改keybindings.json—— 容易漏掉when或写错 command 名
Screencast 插件只适合录教程,不适合排错
插件 Screencast 的作用是把键盘按键动画化显示在屏幕上,方便录屏教学(比如教 Vim 模式切换)。但它:
- 不显示命令 ID,不告诉你按下去后 VSCode 实际执行了什么
- 不反映
when条件是否满足,按了没反应时它照样显示按键动画 - 无法识别被禁用或冲突的快捷键,容易误导你认为「键位没问题」
- 启动后会轻微拖慢响应,尤其在低配机器上
真正卡住你的,从来不是「看不见按键」,而是「按了没反应」或「反应错了」——这两类问题,Ctrl+K Ctrl+S 面板 + 控制台监听,已经足够定位。


















