最可靠的方式是往 keybindings.json 中添加 "command": "" 的规则,因为 vscode 明确将空字符串视为跳过键绑定,而 null、删除或注释均可能导致回退默认行为或冲突残留。

直接禁用 VSCode 默认快捷键,最可靠的方式是往 keybindings.json 里加一条 "command": "" 的规则——不是设为 null,也不是删掉整条,更不是注释掉。其他方式容易失效或引发意外行为。
为什么用 "" 而不是 null 或删除?
VSCode 对空字符串 "" 的处理是明确“跳过该键绑定”,而 null 在某些版本中会被忽略、回退到默认行为;删除整条记录则可能被扩展自动补上;注释掉或清空数组反而会让 VSCode 把它当无效配置继续参与匹配,导致冲突残留。
-
"command": ""是官方文档隐式支持的禁用方式,实测在 1.90+ 版本稳定生效 - 必须确保该条目在用户级
keybindings.json中,工作区级设置无法覆盖全局默认键位 - 如果同个
key被多个扩展注册,仅禁用一条不够,得查清哪条在起效(用命令面板搜索该快捷键,看右侧绑定来源)
keybindings.json 里怎么写才有效?
打开命令面板,执行 Preferences: Open Keyboard Shortcuts (JSON),在数组末尾添加对象即可。注意格式必须是合法 JSON,且 key 值要和实际按键一致(Windows 用 ctrl,macOS 用 cmd)。
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
- 禁用多光标:{ "key": "cmd+d", "command": "" }(macOS)或 { "key": "ctrl+d", "command": "" }(Windows/Linux)
- 禁用 Alt+F4 关闭窗口(误触风险高):{ "key": "alt+f4", "command": "" }
- 禁用 Ctrl+K 系列前缀(避免和
Ctrl+K Ctrl+W冲突):{ "key": "ctrl+k", "command": "" } ——但慎用,它会影响所有以 Ctrl+K 开头的组合键 - 每条必须独立成对象,不能合并;重复
key值时,后写的会覆盖前写的
禁用后没反应?先检查这三个地方
常见“禁用失败”不是配置错了,而是被其他机制绕过了。
- 打开命令面板,输入
Developer: Toggle Developer Tools,切换到 Console 标签页,看是否有keybinding not found类报错 —— 说明你写的key值格式不对(比如把ctrl+shift+p写成Ctrl+Shift+P) - 右键点击某个已禁用的快捷键,在快捷键面板里看它是否还显示“已启用”,若显示“来自扩展”,说明某个插件(如 Vim、Emacs Mode)强行注册了同名绑定,得去插件设置里关掉
- 某些快捷键(如
alt+字母)本质是菜单栏焦点激活行为,keybindings.json无法拦截,需改 VSCode 源码文件(不推荐)或换用menuBarVisibility设为toggle间接规避
真正难的不是写那行 "command": "",而是确认这个快捷键到底由谁注册、在什么条件下生效、有没有被更高优先级的扩展劫持。别急着删配置,先用命令面板搜索 + 悬停查看 when 条件,比盲目修改快得多。










