code --list-extensions --show-versions 可完整列出所有已安装插件及其版本号,不受启用状态限制,是定位过期插件的第一步;真正判断是否过期需依赖 Extensions 视图中单独输入 @outdated 进行联网比对。

code --list-extensions --show-versions 能列出所有已安装插件及其版本
这是定位“过期插件”的第一步,因为 VS Code 的 Updates 标签页只显示「已启用 + 有更新」的插件,而 code --list-extensions --show-versions 不受启用状态限制,能完整输出全部已安装插件 ID 和当前版本号。配合 @outdated 过滤器在 UI 中查看更直观,但命令行结果可直接用于脚本处理。
常见错误现象:执行 code --list-extensions 后发现列表为空 → 实际是 VS Code 没加到 PATH,或用了 alias(如 alias code='code-insiders')导致调用错二进制;Windows 用户若用 PowerShell 运行失败,改用 CMD 或 Git Bash 更稳。
- Linux/macOS 下建议加
| grep -E '\.vscode|python|prettier'快速筛选关注的插件族 - Windows PowerShell 中可用
code --list-extensions --show-versions | Select-String "python" - 输出不含是否过期信息,仅作 ID 和版本快照,需人工比对市场页或后续用
@outdated交叉验证
@outdated 过滤器才是真·过期插件探测器
@outdated 是 Extensions 视图搜索框里的内置指令,它强制列出所有存在新版本的插件,无论启用/禁用、全局/工作区。这才是判断“是否过期”的唯一可靠依据——不是看本地版本号,而是 VS Code 主动联网比对 Marketplace 最新版。
容易踩的坑:@installed outdated 或 @disabled @outdated 这类组合写法无效,VS Code 不支持多关键词逻辑运算;@outdated 必须单独输入,且必须在 Extensions 视图内使用。
- 输入后若无结果,不代表没过期插件,可能是网络问题或 Marketplace 接口临时不可用(可稍后重试)
- 部分插件(如 fork 分支版、本地打包版)不会出现在
@outdated列表里,因它们未发布到官方市场 - 列表中插件名旁的 “Update” 按钮点击后若无反应,大概率是该插件当前被禁用,需先启用再点更新
批量禁用只能靠 Ctrl/Cmd + 多选 + 右键,没有快捷指令
VS Code 官方从未提供类似 Extensions: Disable All Outdated 的命令,所谓“快捷指令”本质是 UI 批量操作:在 @outdated 列表中按住 Ctrl(Windows/Linux)或 Cmd(macOS),逐个点击插件左侧的复选框(非齿轮图标),全选后右键 → 选择 Disable Extension。
为什么不能用命令面板触发?因为禁用动作必须绑定具体插件实例,而命令面板里没有上下文感知的“当前筛选结果集”。试图运行 Extensions: Disable Extension in This Workspace 时,它只会弹出一个空输入框,要求你手动键入插件 ID。
- 禁用前务必确认作用域:右键菜单里选 Disable Extension 默认是全局禁用;若只想关当前项目,得先切换到 User 标签页再操作,否则可能漏掉工作区级残留
- 禁用后某些插件(如
ms-python.python)的语言服务器仍在后台跑,必须手动执行Developer: Reload Window才真正释放资源 - 别依赖
settings.json里的extensions.disabledExtensions字段来批量控制——填错 ID(比如写成prettier而非esbenp.prettier-vscode)会静默失效,且不报错
禁用后残留配置比插件本身更危险
插件禁用只是停止加载,但它的配置项、快捷键、工作区推荐记录全留着。这些残留常在你重启 VS Code 后悄悄复活插件行为,比如保存时仍触发格式化,或打开文件夹时弹窗强推已禁用的插件。
关键位置有三处:settings.json 里插件专属字段(如 "prettier.requireConfig")、keybindings.json 里带 extension. 前缀的快捷键、.vscode/extensions.json 里的推荐列表。它们不会随禁用自动清除。
- 最稳妥做法:禁用一批插件后,打开命令面板运行
Preferences: Open Settings (JSON),搜索prettier、eslint、python等关键词,删掉无关配置 -
keybindings.json中若存在"command": "extension.prettier.format"这类绑定,保留会导致 VS Code 启动时尝试加载对应插件,哪怕它已被禁用 - 工作区级推荐记录藏在
.vscode/extensions.json,删掉这整行"recommendations"数组可彻底杜绝弹窗干扰


















