插件命令未出现在快捷键列表时,需先通过命令面板(Ctrl+Shift+P)搜索并复制其真实command ID,再手动添加到keybindings.json中,确保格式正确、含key和command字段,并建议添加when条件限定触发上下文。

插件命令没出现在快捷键列表里怎么办
VS Code 默认只显示内置命令,很多插件(比如 Prettier、ESLint、CodeBuddy)的命令不会自动列在图形化快捷键界面中。你搜 prettier 或 eslint,大概率什么也找不到。
解决方法只有一个:先确认命令名,再手动写进 keybindings.json。
- 打开命令面板(
Ctrl+Shift+P/Cmd+Shift+P),输入插件相关关键词(如prettier),看有没有对应命令出现;如果有,右键它 → 选择“复制命令 ID”,得到类似prettier.execute这样的字符串 - 如果命令面板里根本搜不到,去插件详情页查文档——多数插件会在 README 或 Settings 页面明确写出可用命令名,例如 CodeBuddy 的格式化命令是
codebuddy.formatDocument - 某些插件(尤其是老版本或未注册 command 的)压根不暴露命令,这种没法绑定快捷键,得换插件或提 issue
怎么在 keybindings.json 里安全添加插件快捷键
直接编辑 keybindings.json 是唯一可靠方式,但容易写错格式导致整个文件失效。别用图形界面点“打开 JSON”后手敲大括号——那不是 JSON 数组。
正确做法是:
- 用命令面板执行
Preferences: Open Keyboard Shortcuts (JSON),它会确保打开的是合法 JSON 数组(哪怕空着也是[]) - 往数组里加对象,每个对象必须含
key和command字段,例如:[{"key": "ctrl+alt+f", "command": "prettier.execute"}] - 强烈建议加上
when条件,避免快捷键在不该触发的地方乱响,比如"when": "editorTextFocus && editorLangId == 'javascript' - 保存后 VS Code 会立刻校验语法,报错就说明 JSON 格式不对(常见于多逗号、少引号、括号不匹配)
为什么按了快捷键没反应
不是命令写错了,就是触发条件卡住了。VS Code 的 when 表达式很严格,写错一个字符就失效。
排查顺序:
- 确认当前焦点是否在编辑器内——很多插件命令要求
editorTextFocus,终端或侧边栏激活时无效 - 检查语言模式是否匹配:
editorLangId == 'typescript'不会在 .js 文件里生效;不确定时先去掉when测试 - 看是否有更高优先级的快捷键覆盖了你的设置(比如系统全局热键、其他插件、或 VS Code 内置同名命令)
- 打开开发者工具(
Help → Toggle Developer Tools),切到 Console 标签,按快捷键,看有没有报command 'xxx' not found
CodeBuddy 插件快捷键要分三类配
CodeBuddy 不是普通插件,它的快捷键机制是分层的:VS Code 环境下走标准命令绑定,独立 IDE 客户端有自己设置入口,斜杠指令(如 /fix)还得单独在 Custom Commands 里注册。
如果你用的是 VS Code + CodeBuddy 插件,只做这一件事就够了:
- 在
keybindings.json中绑定命令,比如:{"key": "ctrl+shift+x", "command": "codebuddy.runFix"} - 别去 Settings → Key Bindings 图形界面找——那里只显示 VS Code 原生命令,CodeBuddy 的命令不会列出来
- 斜杠指令(
/test、/explain)不能用快捷键直接触发,必须去Settings → Custom Commands添加触发词和模板,再绑定快捷键到那个自定义命令 ID
真正麻烦的从来不是加一行 JSON,而是搞清插件到底暴露了哪些命令、在什么上下文里能跑、以及要不要绕过 VS Code 的 when 机制直接调用底层 API —— 这些细节藏在插件文档最底下,不翻根本看不到。


















