关掉notifications: toasts就真不弹了;它是控制vs code右下角一闪而过弹窗的核心设置,设为off后所有showinformationmessage类api调用均不再弹窗,但通知仍保留在铃铛菜单中可查。

Notifications: Toasts 关掉就真不弹了
VS Code 右下角那种一闪而过的弹窗,本质就是 Notifications: Toasts 控制的。它不是“通知系统”本身,而是“弹出来”的那个视觉层。关掉它,插件和 VS Code 自己调用 showInformationMessage、showWarningMessage 这类 API 时,就不会再弹窗——但通知记录仍保留在铃铛菜单里,可查可读。
操作路径直给:Ctrl + , → 搜索 notifications → 找到 Notifications: Toasts → 设为 off。
注意别误关 Notifications: Center,那是通知中心开关,关了就啥都看不到了,包括你手动点开的记录。
静默模式 ≠ 关弹窗,只是临时隐身
右下角出现一个带斜杠的 ? 图标,说明你进了「通知静默模式」——这不是设置生效了,是临时挂起。点击那个 ? 就能退出,弹窗立刻恢复;重启 VS Code 后静默状态自动消失。
静默模式只影响 showInformationMessage 等 API 触发的 toast,不影响终端自动展开、也不拦插件更新提示(比如 GitLens 的「New release available」)。它不能替代 Notifications: Toasts 设置。
插件有自己独立的通知开关
某些插件绕过了 VS Code 全局通知机制,自建弹窗逻辑,比如:
-
espressif.esp-idf-extension:搜IDF: Notification Mode,设为output才不弹 -
ms-vscode.cpptools:部分版本会忽略Notifications: Toasts,需检查扩展设置里有没有cpp.notificationMode类配置 -
gitlens、prettier:即使关了全局 toast,它们仍可能通过实验性通知框架弹窗,必须同步关掉workbench.enableExperiments
settings.json 改了还弹?先查覆盖源
改完用户级 settings.json 却无效,大概率是被更高优先级配置覆盖了:
- 项目根目录存在
.vscode/settings.json,且里面写了"notifications.toasts": true - 你正在用 Remote-SSH 或 Dev Container,远程环境的
settings.json没同步改 - Windows 下快捷方式勾选了「以管理员身份运行」,导致部分配置写入失败,看似保存成功实则没落盘
最稳的验证方式:打开命令面板 Ctrl + Shift + P → 输入 Preferences: Open Settings (JSON) → 看当前生效的 JSON 文件路径,确认修改落在该文件里。
真正麻烦的不是关不掉,而是关掉之后某些插件功能行为变模糊——比如 ESP-IDF 构建失败只写进输出面板,不再弹窗提醒;或者通义灵码禁用了自动补全,但没关掉 Tongyi Lingma: Enable Auto Completion,结果还是弹建议。得一层层对准具体触发源才有效。











