工作区推荐扩展不显示“启用”按钮,是因为vs code检测到工作区不受信任(restricted mode)或配置了"extensions.ignorerecommendations":true,导致推荐逻辑被跳过;需检查左下角状态栏、.vscode/extensions.json及settings.json中相关配置,并确认工作区已信任。

为什么工作区推荐扩展突然不显示“启用”按钮
不是插件没装,而是 VS Code 读取了 .vscode/extensions.json 后,发现你当前工作区被标记为“不受信任”或配置了 "extensions.ignoreRecommendations": true,直接跳过推荐逻辑。右下角若显示 Restricted Mode,所有推荐扩展都会静默失效——连提示都不给。
常见表现包括:esbenp.prettier-vscode 在项目里不自动格式化、ms-python.python 的调试器图标灰掉、命令面板搜不到 python.interpreter。这些都不是插件坏了,是它压根没被允许加载。
- 打开左下角状态栏,确认是否显示
Restricted Mode;点击它 → 选Trust Folder and Subfolders - 检查项目根目录下是否存在
.vscode/extensions.json,内容是否含"unwantedRecommendations"或空的"recommendations": [] - 运行
Preferences: Open Settings (JSON),搜索ignoreRecommendations,确保它没被设为true(尤其注意工作区级 settings.json)
如何验证推荐扩展是否真被禁用
别只看扩展面板里的“已安装”状态——那是全局视角。VS Code 对工作区推荐扩展有独立开关,且不提供 UI 提示。最准的方法是打开命令面板 Ctrl+Shift+P,输入 Extensions: Show Installed Extensions,再点右上角筛选器选 Workspace。如果目标插件不在列表里,说明它被策略屏蔽了;如果在但显示 Disabled,大概率是 .vscode/extensions.json 里写了 "unwantedRecommendations" 或你手动点过禁用。
- 多根工作区下,VS Code 会合并所有子文件夹的
.vscode/extensions.json,后加载的覆盖先加载的,容易误删推荐项 - 远程开发(SSH/Dev Container)中,本地的推荐设置不会同步过去,必须在容器内单独信任工作区并重装扩展
- 执行
Developer: Toggle Developer Tools→ Console 标签页,刷新窗口,搜recommendation或插件名,看是否有Skipping recommendation for extension 'xxx'日志
修改 extensions.json 后仍不生效?检查 activationEvents 是否匹配
就算扩展成功启用,功能也可能“不响应”。比如你推荐了 esbenp.prettier-vscode,但当前打开的是 README.md,而该插件默认只注册了 onLanguage:javascript 和 onLanguage:typescript,就不会激活。这不是配置错,是语言模式没触发。
- 右键插件 →
Extension Settings→ 查看Activation Events字段(市场页面点 ⓘ 也能看到) - 确认当前文件后缀和右下角语言模式(如显示
Markdown而非MDX)是否在 activationEvents 列表中 - 某些插件(如
ms-python.python)还依赖文件系统特征:需存在pyproject.toml或requirements.txt才启动 LSP,光有.py文件不够 - 临时测试:新建一个
test.js,保存,再试Prettier: Format Document命令,看是否报command 'prettier.format' not found
强制重载推荐扩展的三个可靠操作
改完配置别只点“重载窗口”,VS Code 的推荐扩展缓存很顽固。真正起效的操作只有这三种:
- 完全退出 VS Code(macOS 检查 Activity Monitor 里无
Code Helper进程,Windows 看任务管理器里Code.exe是否全关),再重新打开工作区 - 命令面板运行
Developer: Reload Window With Extensions(不是普通重载),它会清空扩展 host 并重走激活流程 - 终端执行
code --disable-extensions --extensions-dir /tmp/empty && code --extensions-dir ~/.vscode/extensions,先用空扩展目录启动验证是否是其他插件干扰,再切回原路径
最容易被忽略的是:VS Code 1.118 开始对推荐扩展加了更细粒度的权限控制,即使你点了 Trust Folder,若 .vscode/settings.json 里有 "security.workspace.trust.untrustedFiles": "open" 但没配 "extensions.experimental.affinity",部分语言扩展仍可能延迟数秒才激活——等不及就以为失效了。











