VSCode快捷键可自定义,需通过命令名与按键组合映射实现:先在命令面板打开键盘快捷键设置,搜索功能获取命令名,再在keybindings.json中添加含key、command、when字段的规则,注意避免冲突、规范写法并同步备份。

VSCode 的快捷键不是固定不变的,你可以按自己习惯重定义几乎所有命令的触发方式——关键是理解规则、避开冲突、保持一致性。
找到要修改的命令名
快捷键绑定本质是“命令”和“按键组合”的映射。想改某个功能,先得知道它的内部命令名:
- 打开命令面板(Ctrl+Shift+P 或 Cmd+Shift+P),输入“Preferences: Open Keyboard Shortcuts (JSON)”
- 或直接按 Ctrl+K Ctrl+S(Windows/Linux)/Cmd+K Cmd+S(macOS)进入图形化快捷键编辑页
- 在搜索框里输入功能关键词(比如“format”,“duplicate”,“toggle terminal”),右侧会显示对应命令名,如 editor.action.formatDocument、editor.action.duplicateSelection
在 keybindings.json 中添加自定义规则
直接编辑 JSON 文件最灵活,也最容易控制优先级:
- 每条规则是一个对象,包含 key(按键组合)、command(命令名)、可选的 when(触发条件,比如只在编辑器中生效)
- 例如把“复制行”改成 Ctrl+D(原为“向下选择”):
{ "key": "ctrl+d", "command": "editor.action.copyLinesDownAction", "when": "editorTextFocus && !editorReadonly" } - 如果想让某个快捷键只在终端里起作用,加上 "when": "terminalFocus"
避免常见冲突和陷阱
改完没反应?大概率是被其他规则覆盖或语法出错:
- VSCode 按顺序匹配快捷键,后定义的同键规则会覆盖前面的——把自定义项放在 keybindings.json 文件末尾更安全
- 按键写法要规范:Ctrl(Windows/Linux)、Cmd(macOS)、Alt、Shift;组合用空格分隔,比如 "cmd+shift+p"
- 禁用某默认快捷键,只需把 command 设为 null,例如:
{ "key": "ctrl+/", "command": null }
同步与备份你的配置
换电脑或重装后不想重配?
- keybindings.json 就是纯文本文件,放在 VSCode 配置目录下(可通过“Developer: Open Settings Folder”快速定位)
- 把它加入 Git 仓库或云同步工具,每次新环境只要复制过去就生效
- 扩展如 Settings Sync 也能自动同步,但注意它同步的是整个设置,快捷键只是其中一部分
基本上就这些。改快捷键不复杂,但容易忽略 when 条件和加载顺序——试一次、查一次命令名、保存后立刻测试,节奏就稳了。










