vscode右键菜单可通过安装时勾选“add 'open with code' action to windows explorer context menu”直接启用,或通过命令面板执行“shell command: install/uninstall 'code' command in path”安全启停,无需手动修改注册表。

安装时勾选/取消勾选即可控制右键菜单
VSCode 安装程序自带开关,不需要改注册表或配 settings.json。只要在安装界面看到两个复选框,勾上就加右键项,不勾就不加——这是唯一真正“开箱即用”的控制方式。
- Windows 安装器(
VSCodeSetup-x64-{version}.exe)运行后,在“Select Additional Tasks”页面会出现两项: -
Add "Open with Code" action to Windows Explorer context menu—— 控制文件/文件夹右键菜单中是否出现“Open with Code” -
Add "Open with Code" action to Windows Desktop context menu—— 单独控制桌面空白处右键是否出现该选项 - 两者独立,默认都勾选;取消任一即可禁用对应位置的右键项
- macOS 和 Linux 安装包(.tar.gz 或 .deb/.rpm)不提供此界面,右键菜单需手动配置或依赖系统级集成工具(如
code命令注册 + shell 脚本)
安装后想补开或关闭,优先用内置命令
如果漏选了,别急着改注册表。VSCode 提供了安全、可逆的内置命令,比手动编辑注册表更可靠,且自动适配路径和参数。
- 打开 VSCode,按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)调出命令面板 - 输入并选择:
Shell Command: Install 'code' command in PATH - 执行成功后,VSCode 会自动向 Windows 注册表写入三组标准项(
*、Directory、Directory\Background),等效于安装时勾选的效果 - 要关闭?同样进命令面板,选:
Shell Command: Uninstall 'code' command in PATH—— 它会干净删除所有相关注册表项,不留空项或残留 - 注意:该命令只影响 VSCode 自己注册的右键项,不触及其他插件(如 GitLens)添加的菜单
为什么手动改注册表容易出错
直接编辑注册表看似灵活,但极易因路径、引号、占位符或权限问题导致右键项不显示、点击无反应,甚至报错 command 'xxx' not found。
- 常见错误:
"%1"写成"%V"(或反过来),或漏掉空格、多加引号,例如:"C:\path\Code.exe""%1"缺少中间空格 → 启动失败 - 路径含空格必须用双引号包裹,且引号内不能有中文或特殊字符,否则注册表解析失败
- 注册表写入后必须彻底退出 VSCode 进程(任务管理器杀掉所有
Code.exe、Code Helper),否则新注册项可能不生效 - Windows 用户账户控制(UAC)可能拦截写入,尤其在非管理员账户下,即使提示“导入成功”,实际未写入
关不掉的右键项大概率来自插件
如果你在设置里关了 Files: Enable Default Context Menu,或者卸载了 code 命令,但右键仍出现“Compare with Branch”“Show Output Channel”之类选项——那不是 VSCode 本身的问题,是插件硬注入的。
- 只有明确支持
menuVisibility的插件(如GitLens、ESLint、Prettier)才响应settings.json中的"gitlens.compareWithBranch": "hidden"配置 - 像
Path Intellisense、Auto Rename Tag这类插件,其右键项是通过contributes.menus直接注册的,settings.json对它们完全无效 - 真要删干净:打开命令面板 →
Developer: Show Running Extensions→ 找到疑似插件 → 右键 →Disable (User)→ 彻底退出 VSCode → 重开
最麻烦的不是加菜单,是加完又删不干净。注册表残留、插件缓存、VSCode 渲染进程未退出——这三者叠加,会让右键菜单像幽灵一样反复出现。动手前先确认是 VSCode 自带项还是插件项,再决定走命令还是删注册表。











