6月2日 00:04

VSCode 快捷键怎么改?自定义键绑定和多快捷键方案切换

VSCode 的快捷键可以完全自定义,还能装不同平台的键位方案(Vim、Sublime、IntelliJ)让肌肉记忆无缝迁移。

查看和搜索快捷键

Ctrl+K Ctrl+S 打开快捷键设置面板。在这里可以:

  • 搜索命令名或快捷键组合
  • 修改任意命令的绑定
  • 查看冲突(同一个快捷键绑定了多个命令)

搜索框里输入命令名(如 "format")或快捷键组合(先按 Ctrl+K 再按要搜索的键),快速定位。

修改快捷键

两种方式:

方式一:面板里直接改。在快捷键面板里找到命令,双击或右键选 "Change Keybinding",按下新快捷键组合。

方式二:编辑 keybindings.json。点击快捷键面板右上角的文件图标,打开 JSON 配置:

json
// keybindings.json [ { "key": "ctrl+shift+f", "command": "editor.action.formatDocument", "when": "editorHasDocumentFormattingProvider && editorTextFocus" }, { "key": "ctrl+d", "command": "editor.action.copyLinesDownAction", "when": "editorTextFocus" }, { "key": "ctrl+shift+d", "command": "workbench.view.debug" } ]

when 条件控制快捷键在什么上下文生效——editorTextFocus 只在编辑器有焦点时生效,避免全局快捷键和终端冲突。

常用快捷键调整建议

格式化代码:默认 Shift+Alt+F,很多人改成 Ctrl+Shift+F 或 Ctrl+S 时自动格式化(配合 editor.formatOnSave: true)。

复制当前行:默认 Shift+Alt+Down,改成 Ctrl+D 更顺手(但 Ctrl+D 默认是"添加下一个选中",改之前想清楚)。

删除当前行:默认 Ctrl+Shift+K,可以改成 Ctrl+Shift+D 或其他顺手的组合。

切换终端:Ctrl+` 比较远,可以加一组 Ctrl+J。

装其他编辑器的键位方案

不想一个个改?装键位扩展一键迁移:

  • Vim:装 "VSCode Vim" 扩展,完整的 Vim 键位模拟
  • Sublime Text:装 "Sublime Text Keymap" 扩展
  • IntelliJ IDEA:装 "IntelliJ IDEA Keybindings" 扩展
  • Emacs:装 "Emacs Friendly Keymap" 扩展

装完扩展后,Ctrl+K Ctrl+S 面板里会显示对应编辑器的键位方案,可以和默认方案混用。

when 条件常用值

when 是快捷键自定义的关键——它决定快捷键在什么场景下生效:

when 值含义
editorTextFocus编辑器有焦点
terminalFocus终端有焦点
resourceLangId == 'python'当前文件是 Python
editorHasSelection有选中文本
inDebugMode调试模式中

组合条件用 && 连接:editorTextFocus && resourceLangId == 'python' 表示只在编辑 Python 文件时生效。

导出和同步快捷键

VSCode Settings Sync(登录 GitHub 或 Microsoft 账号)自动同步快捷键配置到云端,换电脑不用重新配置。如果不想用云同步,手动复制 keybindings.json 文件也行。

标签:VSCode