直接编辑 keybindings.json 文件可避免图形界面覆盖和冲突提示缺失问题;需确保 JSON 格式正确,key 按 ctrl+shift+alt+cmd/win 顺序、字母小写、功能键大写,command 用 Copy Command ID 获取,when 条件表达式须准确。
怎么在 VS Code 里绑定自定义快捷键
直接改
,别在图形界面点来点去——界面操作容易覆盖已有绑定,且不显示冲突提示,改完还得重启生效,效率低还容易出错。
打开命令面板(
或
),输入
回车
文件是 JSON 格式,每条快捷键是一个对象,必须放在数组里,别漏了逗号和括号
关键字段只有三个:
(按键组合)、
(要触发的命令)、
(可选,限定触发场景,比如只在编辑器里生效)
想查某个功能对应的命令名?先用图形界面找到它,右键 → “Copy Command ID”,粘贴到
字段里
常见 key 写法和易错点
看似简单,但大小写、修饰键顺序、特殊符号全写错就无效。VS Code 不报错,只是静静忽略你写的这条。
修饰键固定顺序:
(macOS)或
(Windows),写成
会失败,得写
字母键统一小写,
写成
也无效,必须大写
空格键写成
,句点写成
,斜杠写成
,不能用符号本身
中文输入法状态下快捷键基本失效,这不是 bug,是设计行为——别指望
在中文模式下还能触发
怎么避免快捷键冲突
VS Code 不会主动提醒你新快捷键是否已被占用,冲突时默认以“后加载的为准”,而用户配置比插件配置加载晚,所以你的设置可能悄悄覆盖了插件功能。
VSCode 1.118
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
下载
在命令面板运行
,切到 Console 标签页,输
可看当前全部映射(仅限已加载的)
更靠谱的做法:先在图形界面搜索你想绑定的
,比如搜
,看有没有高亮显示的冲突项
插件自带快捷键通常带前缀,如
,如果你绑了
给它,但另一插件也用了这个组合,就得手动删掉其中一个
什么时候需要
条件
不是所有快捷键都要加
,但一旦涉及编辑器上下文(比如只在 .ts 文件里生效,或只在调试时可用),没它就会误触发。
常用条件值:
(光标在编辑器里)、
(正在调试)、
(当前文件是 Python)
是表达式,不是字符串匹配,
有效,
无效
多个条件用
连接,比如
表示“有焦点且不在调试中”
条件写错不会报错,只是快捷键永远不响应——这是最隐蔽的坑,建议先用简单条件测试,再逐步加限制
实际改键这事,难点不在语法,而在理清“谁在什么时候要做什么”。很多人卡在改完没反应,其实是
写太严,或者
名抄错了字母,又或者根本没注意到输入法开着。
keybindings.jsonCtrl+Shift+PCmd+Shift+PPreferences: Open Keyboard Shortcuts (JSON)keycommandwhencommandkeyctrlshiftaltcmdwinshift+ctrl+fctrl+shift+fF12f12F12spaceperiodslashctrl+;Developer: Toggle Developer Toolsconsole.log(JSON.parse(JSON.stringify(monaco.keybindings.keyboardMapper._simpleKeymap)))keyctrl+eextension.jest-runner.run-all-testsctrl+alt+twhenwheneditorTextFocusinDebugModeresourceExtname == '.py'whenresourceExtname == '.js'resourceExtname contains 'js'&&editorTextFocus && !inDebugModewhencommand