最稳解法是修改extensions.gallery.serviceurl为国内镜像源并彻底退出vscode进程;常见失败原因为url末尾缺斜杠或进程未完全终止,推荐用open-vsx.org替代微软源并同步配置serviceurl和itemurl。

extensions.gallery.serviceUrl 配置错误导致市场空白页
VS Code 插件市场显示“正在加载…”且长期无响应,90% 是因为根本没连上扩展服务端。它死守 marketplace.visualstudio.com,不 fallback、不重试、不提示真实错误。
直接改 extensions.gallery.serviceUrl 是最稳的解法,跳过所有代理和证书层干扰:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入并选择Preferences: Open Settings (JSON) - 添加这行(注意末尾必须有
/,且前后用英文逗号与其他配置隔开):"extensions.gallery.serviceUrl": "https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/" - 保存后必须彻底退出 VS Code 进程:Windows 右键任务栏图标 → “退出”;macOS 在 Activity Monitor 杀掉所有
Code和Code Helper;Linux 执行killall -9 code - 重启后首次加载稍慢,但后续搜索/安装成功率明显提升
备选镜像(如 azure.cn 不可用):"extensions.gallery.serviceUrl": "https://vscode-ext.oss-cn-shenzhen.aliyuncs.com/gallery/" 或开源源:"extensions.gallery.serviceUrl": "https://open-vsx.org/vscode/gallery"
http.proxy 设置错配引发请求卡在 pending
很多用户开了 Clash/Surge,但没开「系统代理」,VS Code 却读到了 http.proxy 配置,比如 "http.proxy": "http://127.0.0.1:7890"。代理进程实际没监听 HTTP 端口,请求就永远停在 pending 状态,界面表现为“加载中…”不动。
清理方式要彻底:
- 打开设置(
Ctrl+,),搜索proxy,找到HTTP: Proxy项,如果值是本地地址且代理未运行,直接清空或设为none - 更稳妥的做法:进
settings.json,删掉整行"http.proxy": ""和"http.proxyStrictSSL": false(后者会削弱证书校验,仅调试用) - 确认删净后重启 VS Code
注意:双击图标或从开始菜单启动的 VS Code 不会继承 shell 的 HTTP_PROXY/HTTPS_PROXY 环境变量,所以别指望终端里 export 了就生效。
插件已安装但图标灰色、无法启用
这不是插件坏了,而是 VS Code 没触发它的激活条件。插件靠 package.json 里的 activationEvents 懒加载,比如 onLanguage:python 只在打开 .py 文件时才动,空窗口或 Untitled-1 标签页下它就是静默的。
验证和绕过方法:
- 打开命令面板(
Ctrl+Shift+P),运行Developer: Toggle Developer Tools,切到 Console 标签页,刷新看是否有Activating extension 'xxx' failed报错 - 点开插件详情页(插件面板里点 ⓘ 图标),查看 Activation Events 字段,确认它要什么才能启动
- 新建一个匹配语言的文件(如
test.py),保存为对应后缀,再观察图标是否变亮 - 若依赖
onCommand:extension.xxx,就得手动调一次那条命令;若声明onStartupFinished却没反应,说明后续某步挂了
另外,插件目录残留也可能导致状态错乱:手动进 ~/.vscode/extensions/(macOS/Linux)或 %USERPROFILE%\.vscode\extensions\(Windows),删掉对应插件文件夹再重装。
Codex 插件升级后白屏或打不开
26.803.41515 及之后版本的 Codex 插件存在一个 Webview 加载逻辑缺陷:它等待一个永远不会到达的 startup.whenReady 信号,结果页面一直白屏。
修复只需两步(亲测有效):
- 定位插件 JS 文件:Windows 路径为
%USERPROFILE%\.vscode\extensions\openai.chatgpt-26.803.41515\webview\assets\app-main-*.js;macOS/Linux 为~/.vscode/extensions/openai.chatgpt-26.803.41515/webview/assets/app-main-*.js(*是随机字符串) - 用编辑器打开该文件,搜索
startup.whenReady或Promise.resolve,找到类似这行:let e = G || K || N.startup == null ? void 0 : Promise.resolve(N.startup.whenReady()); - 在它前面插入
d.dispatchMessage(`ready`, {});,并将整行改为let e = void 0; - 保存,重启 VS Code
这个修改本质是强制 Webview 提前发 ready 信号,绕过原生等待逻辑。操作前务必备份原文件——改错会导致插件完全不可用。











