关 notifications: toasts 为 off 是最直接的统一拦截手段,可切断右下角所有一闪而过的弹窗出口;需同步关闭 extensions.autocheckupdates 和 extensions.autoupdate,并处理 gitlens、volar 等插件专属通知开关,最后清空通知队列。

关 Notifications: Toasts 是最直接的统一拦截手段
右下角所有一闪而过的弹窗(包括插件自弹的「Update available」、「New release」),本质都走 vscode.window.showInformationMessage 这类 API,而 VS Code 的 toast 通道就是它们的出口。设 Notifications: Toasts 为 off 才真正切断这个出口。
别点右下角那个带斜杠的 ? 图标——那是静默模式,只临时屏蔽、重启即失效,且不拦插件自己注册的通知。
- 路径:Ctrl+, → 搜索
notifications→ 找到Notifications: Toasts→ 设为off - 设为
off后,通知仍会进铃铛菜单(右下角铃铛图标),只是不弹出来打断你 - 如果该选项灰色不可调,说明你正处在静默模式,先点
?退出再操作
extensions.autoCheckUpdates 和 extensions.autoUpdate 必须同时关
很多插件(比如 Prettier、ESLint)的更新提示,根源是 VS Code 自己在后台轮询和安装。只关 extensions.autoUpdate,它仍会每小时发 HTTP 请求查新,然后弹「Version x.x.x is available」;只关 autoCheckUpdates,它又可能静默装完后弹「Extension updated」。
- 必须在 settings.json 中明确写:
"extensions.autoCheckUpdates": false和"extensions.autoUpdate": false - GUI 设置有时不同步,尤其用了 Settings Sync 或团队共享配置时,建议直接编辑
settings.json - 检查项目根目录下的
.vscode/settings.json,它会覆盖用户设置,漏掉就白关了
GitLens、Volar、CodeGeeX 等插件得单独处理
这些插件绕过 VS Code 通用更新机制,自己调用弹窗 API,全局开关拦不住。它们的通知开关藏得深,命名不统一,靠 GUI 搜索容易漏。
-
GitLens:搜gitlens.advanced.messages,设为[];或关gitlens.telemetry.enabled(部分版本靠这个关通知) -
Volar(Vue Language Features):旧版需确认没启用volar.updateNotification;新版默认不弹,但若弹了,检查是否误启了遥测 -
CodeGeeX:搜codegeex.notification.enableNotification,设为false - 找不到?打开
settings.json,全局搜notification、update、telemetry,逐个排查
清空残留通知队列和缓存
即使所有开关都关了,之前积压的「Extension updated」气泡可能还钉在右下角,点 × 不消失——这不是设置没生效,而是通知队列缓存没清。
- 按 Ctrl+Shift+P → 输入并执行
Notifications: Clear All Notifications - 如果命令搜不到(旧版 VS Code),打开开发者工具(Ctrl+Shift+I)→ Console 标签页 → 粘贴
notifications.clearAll()回车 - 某些插件(如
ms-python.python)的语言服务器卡在“正在更新…”转圈,本质是下载失败,需手动删缓存目录:~/.vscode/extensions/ms-python.python-*/out/languageServer/
.vscode/settings.json 把 notifications.toasts 又设回了 true,或者 GitLens 的 advanced.messages 被某个 workspace 配置悄悄重置了。











