必须用Preferences: Open Keyboard Shortcuts (JSON)打开keybindings.json文件,所有自定义键值对需严格按JSON格式塞入方括号内,含key(修饰键顺序固定)、command(真实命令ID)和可选when(字符串条件),禁用默认键应使用"-command"而非空字符串。

直接编辑 keybindings.json 时怎么快速加键值对
必须用 Preferences: Open Keyboard Shortcuts (JSON) 打开文件,不是 GUI 界面(Ctrl+K Ctrl+S)——后者只能增删简单绑定,无法写 when、处理冲突或禁用默认项。
打开后你会看到一个空数组 [] 或已有内容。所有自定义都得塞进这个方括号里,每条是独立对象,格式严格:
-
key必须小写、无空格、修饰键顺序固定:ctrl+shift+f✅,Ctrl+Shift+F❌,ctrl+;在中文键盘上可能被识别为ctrl+:,需配合"keyboard.dispatch":"keyCode"设置 -
command必须是真实命令 ID,不是中文名;可在 GUI 中悬停目标命令查看,比如editor.action.formatDocument,不是 “格式化文档” -
when字段不写等于true,但容易误触;建议明确限定,如"editorTextFocus"或"editorTextFocus && resourceExtname == '.py'"
为什么 Ctrl+/ 注释快捷键在某些文件里失效
这不是快捷键配置问题,而是语言扩展没注册 editor.action.commentLine 命令。VSCode 的行注释行为由语言插件提供,不是编辑器原生功能。
验证方法:
- 按
Ctrl+Shift+P→ 输入Developer: Inspect Editor Tokens and Scopes,看右下角显示的Language ID - 如果显示
plaintext或undefined,说明当前文件没激活对应语言模式,Ctrl+/就不会响应 - 此时可用
Ctrl+K Ctrl+C(强制注释)或手动设置when条件为"textInputFocus"来兜底
怎么安全禁用默认快捷键而不留隐患
别写 "command": "",VSCode 会忽略整条规则;也别删默认项,它下次更新可能重载。
用于端到端视频本地化流程的轻量编排器,路由至四个专注子技能——/wjs-transcribing-audio、/wjs-translating-subtitles...
正确做法是用负号前缀显式取消绑定:
- 在
keybindings.json中添加类似这样的条目:[{"key":"ctrl+k ctrl+i","command":"-editor.action.showHover"}] -
-必须紧贴命令名,不能有空格;- editor.action.showHover❌,-editor.action.showHover✅ - 命令 ID 可在 GUI 中右键某快捷键 → “复制命令 ID” 获取
- 这样既释放组合键,又避免后续自定义被插件悄悄覆盖
插件抢键、系统拦截导致快捷键不生效怎么办
多数“点了没反应”不是配错了,而是被更高优先级的规则压住了。
排查路径:
- 打开
Ctrl+K Ctrl+S,搜索你的快捷键组合,看“来源”列是Default、Extension还是User - 临时退出可能劫持的程序:搜狗拼音、Raycast、Logitech Options、iTerm2 的快捷键设置
- 在 DevTools Console 里运行:
console.log(JSON.stringify(monaco.keymaps.KeybindingsRegistry.getBoundKeybindings('your.command.id'), null, 2)),查所有绑定及when条件 - 非美式键盘用户务必检查
settings.json是否已设"keyboard.dispatch":"keyCode"
真正麻烦的不是写错 JSON,而是 when 条件太窄、插件绑定太深、或者系统层早把键吞了——这些地方一漏,就白调十分钟。

















