只有明确支持 menuvisibility 机制的插件(如 gitlens、eslint、prettier)才响应 settings.json 中 "commandid": "hidden" 配置;path intellisense 等不支持的插件加了也无效。

哪些插件右键项能用 settings.json 直接隐藏
只有明确支持 menuVisibility 机制的插件,才响应 "commandId": "hidden" 配置。GitLens、ESLint、Prettier 等主流插件从 VS Code 1.84 起已适配;但 Path Intellisense、Auto Rename Tag、Project Manager 这类插件基本不支持——你加了也白加,不是配置写错,是压根不读。
可隐藏的典型项包括:
-
"gitlens.compareWithBranch": "hidden"(查 GitLens 文档确认命令 ID) "eslint.showOutputChannel": "hidden"-
"editor.action.clipboardCopyAction": "hidden"(这是内置命令,慎用)
注意:"hidden" 必须是字符串,写成 false 或 null 无效。
编辑器里右键菜单怎么只留复制/粘贴等核心项
编辑器区域(即代码编辑区)的右键菜单由 editor.contextmenu 数组完全控制,它是白名单机制:空数组会清空全部(包括复制粘贴),想保留就得手动列出来。
关键点:
-
when条件必须含editorTextFocus,否则菜单不弹出 - 漏写
!editorReadonly可能在只读文件里意外显示格式化项 -
group值只能用预设名,如"9_cutcopypaste",填"mygroup"会导致排序错乱或项消失 - 命令 ID 必须精确,例如格式化是
editor.action.formatDocument,不是formatDocument
示例(仅保留复制、粘贴、查找):
"editor.contextmenu": [
{
"command": "editor.action.clipboardCopyAction",
"group": "9_cutcopypaste",
"when": "editorTextFocus && !editorReadonly"
},
{
"command": "editor.action.clipboardPasteAction",
"group": "9_cutcopypaste",
"when": "editorTextFocus && !editorReadonly"
},
{
"command": "editor.action.addSelectionToNextFindMatch",
"group": "z_commands",
"when": "editorTextFocus"
}
]
删不掉的右键菜单项大概率是插件残留
禁用插件后右键还出现空项、点击无反应或报错,不是 bug,而是 VS Code 缓存了旧注册信息。这时光禁用不够,得彻底清理:
- 打开命令面板(
Ctrl+Shift+P),执行Developer: Show Running Extensions - 按
Ctrl+Click多选名称含context、menu、explorer的插件 - 右键 →
Disable (User)(别选 Workspace) - 手动结束所有
Code.exe进程(任务管理器 / Activity Monitor) - 重启 VS Code
如果仍残留,说明该插件是硬编码注入菜单,settings.json 无法干预,唯一干净解法就是卸载它。
系统级右键菜单(资源管理器里)和插件无关
你在文件资源管理器里看到的“用 VS Code 打开”这类项,和插件完全无关,是 Windows 注册表控制的。它分三处:
-
HKEY_CLASSES_ROOT\*\shell\vscode:右键单个文件时出现 -
HKEY_CLASSES_ROOT\Directory\shell\vscode:右键**文件夹图标**时出现 -
HKEY_CLASSES_ROOT\Directory\Background\shell\vscode:右键**文件夹空白处**时出现
删除方法是新建 .reg 文件,内容为:
Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\*\shell\vscode] [-HKEY_CLASSES_ROOT\Directory\shell\vscode] [-HKEY_CLASSES_ROOT\Directory\Background\shell\vscode]
双击运行后,需重启 explorer.exe(任务管理器里重启 Windows 资源管理器)才生效。
最易被忽略的是:编辑器右键、资源管理器右键、插件右键,三者互不干扰,改错地方就永远删不掉。尤其当某个插件既注册了编辑器菜单又注册了资源管理器菜单时,得分别处理两套逻辑。











