离线环境下需用code --list-extensions --show-versions获取形如ms-python.python@2026.4.1的插件id与版本,再按模板https://marketplace.visualstudio.com/_apis/public/gallery/publishers/{publisher}/vsextensions/{extension-name}/{version}/vspackage拼接下载地址,其中publisher为点前部分、extension-name为点后部分,不可用显示名。

离线环境下无法直接用 VSCode 扩展市场下载插件,但可以靠 code --list-extensions + 手动匹配 ID + 官方 API 构造链接完成批量获取,不是“找下载按钮”,而是“算出 URL”。
怎么拿到准确的插件 ID 和版本号
手动复制插件名(比如“Python”“Prettier”)会失败,VSCode 只认发布者+插件名格式的 ID,例如 ms-python.python。最稳的方式是运行命令:
-
code --list-extensions --show-versions—— 输出形如ms-python.python@2026.4.1的列表,直接可用 - 若在目标离线机上执行不了,就在联网机上装同版本 VSCode,登录同一账号后同步启用状态,再导出
- 注意:禁用的插件不会出现在
--list-extensions结果里,如需全量备份,得进%USERPROFILE%\.vscode\extensions\(Windows)或$HOME/.vscode/extensions/(macOS/Linux)目录手动查文件夹名
如何用插件 ID 拼出 .vsix 下载地址
VS Code Marketplace 不再提供页面版历史版本下载入口,但后台 API 仍开放。URL 模板如下:
https://marketplace.visualstudio.com/_apis/public/gallery/publishers/{publisher}/vsextensions/{extension-name}/{version}/vspackage
举例:下载 ms-python.python 的 2026.4.1 版本,拼成:
https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-python/vsextensions/python/2026.4.1/vspackage
关键点:
-
{publisher}是 ID 中.前部分(ms-python),不是用户名或组织名 -
{extension-name}是.后部分(python),不是显示名 “Python” - 带平台限定(如
linux-x64)需加 query 参数:?targetPlatform=linux-x64 - 浏览器下载时若提示 404,先确认该版本是否真实存在——可访问
https://marketplace.visualstudio.com/items?itemName=ms-python.python看右侧“Version History”里有没有这个号
离线安装时为什么 code --install-extension 卡住或静默失败
不是命令写错了,而是 VSCode 在离线状态下仍尝试连接更新服务器、校验签名、拉取依赖,导致超时或跳过关键步骤。
- 必须加
--force参数,否则遇到已存在版本会停住等待确认 - Linux/macOS 推荐套一层
timeout 120,防止单个插件卡死整个流程 - Windows PowerShell 中不要用
cmd的重定向语法(如>>),用>且确保路径含空格时加引号:code --install-extension "C:\my\plugin.vsix" - 某些插件(如
ms-vscode.cpptools)含原生二进制模块,离线安装后首次启用会尝试下载 LSP server,此时需提前把对应平台的 server zip 包放进插件目录下的dist或out子目录,否则功能残缺
自动对比代码版本?别依赖插件,用内置 git diff + diffEditor
所谓“自动对比代码版本”,本质是 Git 差异查看,VSCode 自带能力已足够,无需额外插件——尤其在离线环境,少一个依赖就少一个故障点。
- 打开源代码管理面板(
Ctrl+Shift+G),点击修改文件,自动进入diffEditor视图 - 设置里开
diffEditor.ignoreTrimWhitespace: true,避免空格变动干扰判断 - 想比两个任意文件?
Ctrl+Shift+P→ 输入Compare Active File With...,选本地路径即可 - 如果真需要结构化比对(如 JSON/YAML 配置差异),可提前下载好
redhat.vscode-yaml这类支持 schema 校验的插件离线包,它不依赖网络也能高亮字段级差异
真正容易被忽略的是:插件 ID 和 marketplace API 地址之间没有 UI 映射关系,你必须从 code --list-extensions 输出里抠出那一串带点的字符串,再手工拆解——错一位,下载下来就是 404 或损坏包。











