VSCode 的 window.zoomLevel 不保存是因工作区设置覆盖用户设置或类型错误;需删除 .vscode/settings.json 中的冲突项,确保值为整数(如 0),并注意多显示器下无逐屏缩放支持。

VSCode 的 window.zoomLevel 不保存,根本不是“没生效”,而是被更高优先级配置覆盖或类型写错——多数情况删掉工作区设置就能立刻恢复。
为什么改了 window.zoomLevel 重启后又变回原样?
这不是 VSCode 记不住,而是它严格按配置优先级执行:工作区(.vscode/settings.json)> 用户设置 > 默认值。只要项目目录下有 .vscode/settings.json,里面哪怕只有一行 "window.zoomLevel": 0,就会压过你用户级的所有修改。
- 打开项目根目录,检查是否存在
.vscode/settings.json;用编辑器搜索window.zoomLevel,整行删掉或加//注释 - 如果多个子文件夹里也有各自的
.vscode,逐个排查——尤其常见于 monorepo 项目中嵌套的 package 目录 - 确认值是数字类型:
"window.zoomLevel": "0"(字符串)或"window.zoomLevel": 0.0(浮点零)都不生效,必须是0(纯整数)
Ctrl + 0 重置无效,但实际缩放值已变
按 Ctrl + 0 没反应,往往是因为当前 window.zoomLevel 就是 0,不是快捷键坏了。真正的问题是:你以为自己调过,其实改的是 editor.zoomLevel 或 editor.fontSize,它们和 UI 缩放完全无关。
- 打开命令面板(
Ctrl + Shift + P),运行Developer: Toggle Developer Tools - 在 Console 输入
getConfiguration('window').zoomLevel,直接看到真实值 - 再搜一遍所有 settings.json(包括用户设置、工作区、远程 SSH 设置),确认没有重复或冲突项
多显示器下缩放“保存失败”的假象
把 VSCode 窗口从 1080p 笔记本拖到 4K 外接屏,UI 突然变小,你以为缩放“丢了”,其实是 VSCode 压根不支持 per-display 缩放——window.zoomLevel 是全局单值,不会随显示器 DPI 自动切换。
- 这不是 bug,是当前版本(v1.118)的设计限制
- 若需外接高 DPI 屏时保持可读性,必须手动设一个折中值,比如
"window.zoomLevel": 1,并接受在笔记本屏上略大、在 4K 屏上刚好 - 系统级缩放(Windows 设置 → 显示 → 缩放)比 VSCode 自身缩放更稳定,尤其双屏场景下建议优先用系统 DPI 统一管理
真正难搞的从来不是怎么设,而是哪一层配置正在悄悄覆盖你——先查工作区,再验类型,最后看是否被多显示器的物理现实卡住。











