答案:通过编辑 keybindings.json 文件并利用 when 条件,可实现 VSCode 中高度个性化的快捷键配置,支持语言特定、场景化和多平台设置,提升编码效率。

在 VSCode 中,快捷键映射的高级配置能大幅提升编码效率。通过自定义键盘快捷方式,你可以根据工作流调整操作触发方式,甚至为不同语言或场景设置条件化快捷键。核心方法是编辑 keybindings.json 文件,而不是仅依赖图形界面。
打开并编辑 keybindings.json
VSCode 的快捷键配置存储在 keybindings.json 中。要进入该文件:
- 使用命令面板(Ctrl+Shift+P)输入 “Preferences: Open Keyboard Shortcuts (JSON)”
- 直接点击右上角的花括号图标,在 GUI 快捷键界面打开 JSON 源文件
此文件是一个 JSON 数组,每项代表一条快捷键规则。
基本结构与常用字段
每个快捷键条目包含至少三个字段:key、command,以及可选的 when 条件。
{
"key": "ctrl+;",
"command": "editor.action.commentLine",
"when": "editorTextFocus && !editorReadonly"
}
- key:触发组合键,支持 Ctrl、Alt、Shift、Cmd 等,用 + 连接
- command:执行的命令名称,可在命令面板中查找
- when:上下文条件,控制何时生效
使用 when 条件实现智能映射
通过 when 表达式,可以让快捷键只在特定环境下触发,避免冲突。
- 限制语言类型:
editorLangId == 'python' - 仅在有选择文本时生效:
editorHasSelection - 排除某些情况:
!inQuickOpen && editorTextFocus
例如,为 Python 文件单独设置格式化快捷键:
{
"key": "ctrl+shift+f",
"command": "python.sortImports",
"when": "editorLangId == 'python'"
}
覆盖内置快捷键与命令链
若想替换默认行为,只需使用相同 command 定义新 key。也可通过扩展程序添加的命令进行绑定。
本文档主要讲述的是mybatis语法和介绍;MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,Mybatis 是一种“半自动化”的ORM实现。感兴趣的朋友可
进阶技巧:使用 runCommands 执行多个操作:
{
"key": "ctrl+alt+l",
"command": "editor.action.formatDocument",
"args": {
"chainedCommand": "save"
},
"when": "editorTextFocus"
}
注意:原生不支持直接链式调用,但可通过插件如 Multi-command 实现顺序执行。
平台特定配置
若需为不同操作系统设置不同快捷键,可用 key 字段配合平台判断:
- Windows/Linux 使用
ctrl -
macOS 常用
cmd
也可在 keybindings.json 中利用条件表达式自动适配:
{
"key": "cmd+shift+k",
"command": "deleteLines",
"when": "editorTextFocus && isMac"
},
{
"key": "ctrl+shift+k",
"command": "deleteLines",
"when": "editorTextFocus && !isMac"
}
基本上就这些。掌握 keybindings.json 的结构和 when 条件语法后,你可以实现高度个性化的快捷操作体系,让编辑器真正贴合你的习惯。修改后即时生效,无需重启 VSCode。









