window.zoomLevel 不支持按项目生效,因其为全局配置;唯一可靠方式是用 .vscode/settings.json 中的 editor.fontSize 实现项目级字体缩放,配合 terminal.integrated.fontSize 和 --zoom-level 参数可进一步优化。

为什么 window.zoomLevel 在多项目中不生效
因为 window.zoomLevel 是全局配置项,VSCode 不支持按项目自动切换 UI 缩放比例。你在用户设置里写的 "window.zoomLevel": 1,对所有窗口、所有工作区都生效;哪怕你用 code . 分别打开两个不同分辨率的项目,它们共享同一个缩放值。
真正能按项目设缩放的只有 editor.fontSize
editor.fontSize 支持工作区级覆盖,是唯一可靠实现“不同项目不同显示大小”的方式:
- 在项目根目录建
.vscode/settings.json - 写入:
{"editor.fontSize": 16} - 该设置只影响当前文件夹及子目录下的编辑器字体,不影响菜单栏、侧边栏等 UI 元素
- 外接 4K 屏项目可设为
16,笔记本小屏项目可设为14或13
注意:terminal.integrated.fontSize 和 editor.lineHeight 也支持同级覆盖,建议一并配齐,避免终端或行高错位。
想让整个 UI(含侧边栏)也按项目缩放?只能靠命令行启动参数
VSCode 没有内置的 per-workspace window.zoomLevel,但你可以绕过它,用 --zoom-level 启动参数强制指定:
- 在项目 A 目录下运行:
code --zoom-level=1 . - 在项目 B 目录下运行:
code --zoom-level=-0.5 . - 该参数优先级高于 settings.json 中的
window.zoomLevel,且仅作用于本次启动的窗口 - 缺点:每次都要敲命令;无法保存为快捷方式(除非你写 shell 脚本或桌面快捷方式)
Windows 用户可用批处理,macOS/Linux 用户可 alias 成 code-z1 这类简写。
别踩这些坑
常见失效原因不是配置写错,而是作用域和叠加逻辑被忽略:
-
window.zoomLevel写在项目.vscode/settings.json里会被忽略——它只认用户级或命令行参数 - 同时开了系统 DPI 缩放 +
window.zoomLevel+editor.fontSize,视觉会失衡,比如侧边栏图标变大但代码行距挤成一团 - 已打开的窗口不会响应新写的
--zoom-level,必须关闭再重开 - 某些远程开发扩展(如 Remote - SSH)会重置 zoom 状态,连接后需手动再调一次
最稳的组合其实是:全局 window.zoomLevel: 0,然后每个项目用 .vscode/settings.json 精确控 editor.fontSize 和 terminal.integrated.fontSize ——UI 统一清晰,内容层按需呼吸。


















