只有明确支持menuVisibility的插件(如GitLens、ESLint)才能通过settings.json用"commandId": "hidden"精准隐藏右键项;ID须完全正确且值必须为字符串"hidden",配置后需彻底退出VSCode生效;不支持该机制的插件只能禁用或卸载,否则菜单项仍残留。

VSCode 的右键菜单不能靠图形界面拖拽删减,所有修改都得动配置或注册表——编辑器内右键靠 settings.json,系统级右键(比如资源管理器里点文件夹)必须改 Windows 注册表。
怎么用 settings.json 隐藏编辑器区域的插件右键项
只有明确支持 menuVisibility 的插件(如 GitLens、ESLint、Prettier)才能被精准隐藏;其他插件的菜单项写再多规则也没用。
-
"gitlens.compareWithBranch": "hidden"这类配置必须写对命令 ID,ID 错一个字母就不生效;查法:打开命令面板(Ctrl+Shift+P),输功能名,看右侧显示的完整 ID - 值必须是字符串
"hidden",写成false、null或0全部无效 - 配置完必须完全退出 VSCode(任务管理器杀掉所有
Code进程),只「重载窗口」会残留旧菜单 - 不支持该机制的插件(比如 Path Intellisense、Auto Rename Tag),禁用插件本身才是唯一可靠方式
为什么删了插件右键还出现空项或报错
这不是 bug,是 VSCode 缓存了插件注册的菜单信息,卸载后没清干净。
- 先确认插件已从「已安装扩展」列表中彻底删除,不只是禁用
- 手动进插件目录删残留:
%USERPROFILE%\.vscode\extensions\(Windows)或~/.vscode/extensions/(macOS/Linux) - 打开开发者工具(
Help → Toggle Developer Tools),右键触发一次,看 Console 是否输出command 'xxx.action' not found—— 有就说明某处还在调用已不存在的命令
怎么关掉系统级右键菜单里的“在 VS Code 中打开”
这类选项根本不在 VSCode 进程里运行,而是 Windows 资源管理器读注册表渲染的,VSCode 设置对它完全无效。
- 要删掉「文件夹空白处右键」选项,删注册表项:
HKEY_CLASSES_ROOT\Directory\Background\shell\vscode - 要删掉「文件夹图标上右键」选项,删:
HKEY_CLASSES_ROOT\Directory\shell\vscode - 删完必须重启资源管理器(任务管理器 → 重启
explorer.exe)或重新登录,否则不生效 - 别用第三方“右键清理工具”,直接写
.reg文件最稳,内容就是[-路径]格式
editor.contextmenu 数组不是万能开关
这个数组只控制编辑器代码区(即你写代码的地方)的右键菜单,它不是布尔开关,而是一个显式声明列表。
- 空数组
"editor.contextmenu": []表示清空所有默认项——复制、粘贴、格式化全没了,慎用 - 想保留部分就手动列出来,比如只留格式化和复制:
"command": "editor.action.formatDocument"和"command": "editor.action.clipboardCopyAction" -
when条件漏写editorTextFocus会导致菜单压根不弹;group值乱填(比如写成"mygroup@1")可能被忽略,优先用官方分组名如"1_modification"
最常被忽略的是:插件菜单项是否响应 menuVisibility 不由你决定,而由插件作者是否在 package.json 里声明了 visibility 支持。没声明,就只能禁用插件或改注册表——没有中间态。


















