VS Code 的键盘快捷键映射全部存储在用户级 keybindings.json 文件中,需点击设置页右上角“打开设置(JSON)”图标手动编辑;该文件默认为空数组[],添加快捷键需按固定格式写入对象,含 key、command 必填字段及可选 when 条件;command ID 应通过命令面板悬停或右键复制获取;修改后保存即生效。

快捷键配置文件在哪,怎么打开
VS Code 的键盘快捷键映射全部存在 keybindings.json 文件里,不是通过图形界面“设置”页直接编辑的——点开设置页右上角的“打开设置(JSON)”图标(花括号 {}),就能直接打开它。这个文件是用户级生效的,优先级高于默认快捷键和扩展自带的绑定。
常见误区:在设置页里搜“keyboard shortcuts”点进去,看到的是只读的可视化列表;真正要改映射,必须进 JSON 文件。如果没看到该文件内容,说明你还没自定义过快捷键,此时它是空数组 [],可以放心往里加。
添加一条新快捷键的基本写法
每条快捷键是一组对象,包含 key、command 两个必填字段,可选 when(触发条件)。格式固定,不能少引号、逗号或大括号。
-
key:按键组合,用英文短横线连接,比如"ctrl+shift+p"、"alt+f1";Mac 用户注意用cmd而非ctrl -
command:目标命令 ID,不是菜单名。例如打开命令面板是"workbench.action.showCommands",不是“显示命令面板” -
when:字符串表达式,控制何时生效,比如"editorTextFocus && !editorReadonly"表示“光标在可编辑编辑器中时”
示例:把 ctrl+enter 绑定为在当前行下方插入新行(原生命令):
[
{
"key": "ctrl+enter",
"command": "editor.action.insertLineAfter",
"when": "editorTextFocus"
}
]
怎么查到某个功能对应的 command ID
别猜,也别去文档里翻——VS Code 自带命令 ID 检索。按 ctrl+shift+p(Win/Linux)或 cmd+shift+p(Mac)打开命令面板,输入你要找的功能(比如“duplicate line”),鼠标悬停在命令上,状态栏会显示完整 ID,如 editor.action.duplicateSelection;或者右键该命令 → “Copy Command ID”。
另一个办法:打开命令面板 → 输入 Developer: Toggle Developer Tools → 控制台里执行 console.log(monaco.editor.getActions())(仅限内置编辑器动作),但日常推荐前一种。
注意:有些命令只在特定上下文有效,比如 workbench.action.terminal.toggleTerminal 在终端未加载时可能不响应,这不是配置错,而是 VS Code 的懒加载机制导致的。
冲突检测和覆盖默认快捷键
VS Code 会在设置页的快捷键面板里标红显示冲突项,但 JSON 编辑器里不会自动提示。如果你新加的快捷键没反应,先检查是否被已有绑定覆盖了——打开快捷键面板,搜你的 key,看有没有其他命令占着。
- 想覆盖默认绑定?直接在
keybindings.json里加新条目即可,后加的同 key 条目会生效(顺序无关,但必须确保when条件匹配) - 禁用某默认快捷键?把它的
command设为null,例如:{"key":"ctrl+shift+k","command":null} - 多个扩展可能注册相同 key,此时需靠
when区分,比如限制只在 Markdown 文件生效:"when": "editorTextFocus && editorLangId == 'markdown'"
容易忽略的一点:修改 keybindings.json 后无需重启,保存即生效,但若绑定涉及新安装的扩展,得等扩展完全激活(比如刚装完 Prettier,首次格式化命令可能要等几秒才可用)。










