vscode右下角弹窗需三重禁用:设"update.mode": "none"并关windows后台更新;关extensions.autocheckupdates和autoupdate;关notifications: toasts及插件专属通知。

右下角弹窗不是单一问题,而是三类独立机制叠加的结果:主程序更新、插件自动行为、通知通道本身。只关其中一项,它照样蹦。
为什么“关了设置还弹”?因为 update.mode 没设对
VSCode 右下角显示“有新版本可用”,根源是 update.mode 仍为 manual 或默认值。设成 manual 会偷偷下载并弹窗;必须设为 none 才真正禁用。
- Windows 用户额外注意:
Update: Enable Windows Background Updates必须取消勾选,否则update.exe进程可能绕过设置联网 - 改完不用重启即生效,但建议立刻执行「帮助 → 检查更新」验证:应显示“当前已是最新版本”,且无气泡
- 别信 GUI 设置界面的“已保存”提示——大版本升级后,
settings.json可能被重写,"update.mode": "none"被悄悄删掉
插件更新弹窗关不掉?extensions.autoCheckUpdates 和 autoUpdate 都得关
插件更新逻辑和主程序完全隔离。即使 update.mode 是 none,Python、Prettier 等插件仍会每小时轮询、下载、静默安装,导致功能异常或卡在“正在更新…”转圈。
-
"extensions.autoCheckUpdates": false—— 停止后台扫描 -
"extensions.autoUpdate": false—— 阻止检测到更新后自动下载安装 - 这两个字段必须同时设为
false,缺一不可;仅关autoUpdate会导致插件一直“待更新”却不装,但通知仍会弹 - 检查项目级
.vscode/settings.json是否覆盖了全局设置
Git fetch、语言服务器、插件专属提示还在弹?那是 toast 通道没关死
即使前两步都做了,GitLens、Live Server、ms-python.python 的语言服务器等,会绕过 VSCode 通用更新逻辑,直接调用 vscode.window.showInformationMessage。这类消息只受通知通道控制。
- 搜索
Notifications: Toasts,设为off—— 这是控制右下角“一闪而过”弹窗的核心开关 - 某些插件有独立通知配置:比如
gitlens.advanced.messages设为空数组[],liveServer.settings.donotVerifyVersion设为true - 若设置无效,可临时执行命令面板中的
Notifications: Clear All Notifications清空残留队列 - 极少数情况(如企业策略锁死设置),需手动修改 CSS 强制隐藏,但这是最后手段
最易被忽略的是:插件通知和系统通知走的是不同路径,同一套设置无法通杀。Git fetch 弹窗靠 git.autofetch 控制,语言服务器卡住要清缓存目录,而“是否保存工作区”弹窗其实是 confirm before close 在起作用——它们名字相似,机制完全不同。











