VS Code 这次没重做 UI:它把 Agents 窗口那套设计系统搬回了编辑器

原文:Modernizing the VS Code UI 作者:Lee Murray(VS Code 团队;具体职位未在博客中注明) 来源:Visual Studio Code Blog,发布于 2026 年 10 月 15 日

我读 Lee Murray 在 2026 年 10 月 15 日发布的《Modernizing the VS Code UI》,先找的是改版目的。官方给出的方向很明确:理清十余年累积的界面层级、减少干扰,用同一套设计基础承接手动编辑和 AI 智能体(agent)会话,同时保留信息密度、定制能力和熟悉的操作习惯。【关键词:#VSCode #现代UI #Agents】

顺着这个目的,我更关心的是:这套设计为什么先在 Agents 窗口落地,搬回编辑器后,又为老用户改了什么。下文依据博客发布时的预览状态解读,设置建议未经本地实测。

手绘封面:米白纸底上手写标题“VS Code 这次没重做 UI”,右侧是 Agents 窗口小卡片和 VS Code 工作台的手绘——活动标签与编辑器表面连成一片;红笔把“重做 UI”圈起来划掉,旁边写着“搬回来了,同一套设计系统”

01|我先分清:这次改的是哪一层

我先看了博客里的时间线:2015 年首发预览,2016 年加入编辑器标签页,2019 年更新树状控件,2023 年推出 Dark Modern / Light Modern 主题。今天看着理所当然的界面,其实是一块块加上来的。

原文把这种演进叫作逐个组件推进。工作台(workbench,也就是包围代码区的导航、面板、标签等界面)里的各个部分,未必遵循同一套间距、字号和控件规则。我把它理解成一间不断添家具的书房:每件家具单看都能用,放在一起,尺寸和动线却未必协调。

我理解这次改版的边界是:保留文件编辑方式,改造工作台外壳。 密集的文件导航、多编辑器分组和已有操作习惯,都要继续照顾。沿着原文,我把推进过程串成三步:

  1. 颜色先动:以 Dark 2026 / Light 2026 两个新主题为起点,一起考虑工作台配色和代码语法高亮。
  2. 共享设计系统在 Agents 窗口里跑通:这个窗口在 2026 年早些时候进入 Stable(稳定版),当时仍是 Preview(预览功能)。它围绕发起智能体会话、跟踪进度、检查结果组织界面,为统一间距、字号、界面底色和控件规则提供了落地场景。
  3. 把同一套规则铺到编辑器外壳:活动栏(Activity Bar)、侧边栏、编辑器组、面板、标签、状态栏,成为应用共享规则的区域。

读到这里,我才把 Agents 窗口和这次改版连起来:直接编辑文件时,重点是快速找文件、切分组;委托智能体做事时,重点是看会话状态、下一步动作和修改结果。两种工作流需要不同布局,但字体、间距、颜色和控件可以共用一套规则。Agents 窗口是实验室,编辑器外壳是推广地,并不意味着要把编辑器也摆成一个聊天窗口。

我还留意到:按博客发布时的说明,现代 UI 经历了 Insiders(预览体验版)默认启用、Stable 分组实验,随后默认开启,但仍被称为预览。旧界面(classic UI)在过渡期保留,可以取消勾选 workbench.experimental.modernUI 切回。“默认开启”,还不等于设计定稿。

02|共享设计系统,和换个主题差在哪儿

读到“共享设计系统”,我会接着问:和换一套主题有什么区别?原文给出的关键是设计令牌(design tokens):把间距、尺寸、颜色变成有名字的公共值,组件引用它们,不必各写一份。

比如调整紧凑程度时,有了共同的间距规则,就能协调修改多个区域。颜色仍然重要,但仅换颜色,解决不了标签太占地方、面板拖动位置不好找的问题。我把文中的具体变化放在一起看:

关注的地方博客描述的做法我理解它要解决的问题
颜色Dark 2026 / Light 2026 一起考虑工作台与代码配色,统一悬停、焦点、选中等状态的表达让重要内容更容易辨认
间距用命名令牌统一规则,支持不同密度让多个区域能协调收紧或放宽
字号简化字号层级,移除全大写标签,同时保留可选设置减少争抢注意力的文字样式
控件调整面板分隔与缩放控件让边界和可拖动的位置更容易发现
标签Connected Tabs(连接式标签)把活动标签与编辑器表面连成一片更容易对应当前文件与下方内容

我看这次“统一”,重点就在规则能不能复用。原文也明确保留了主题、密度和工作区安排的选择,并不要求所有人的 VS Code 长得一样。

03|留白好看,但代码区不能跟着缩水

我读到反馈部分,最关注的是屏幕空间这笔账。原文列出的意见很具体:间距挤占代码、文件树和终端的位置;标签与编辑器割裂;状态栏装不下原有信息;面板边界、主题控制和渲染性能也需要继续调整。这些问题在官方的公开反馈汇总中也能对照到。

在 1920×1080、100% 缩放下,原文给出的空间变化是:现代 UI 横向多占约 20 px,纵向多占 12–18 px,具体取决于布局。官方增加间隔,是为了分清区域、让控件容易找;代价就是留给内容的位置变少。

我认可把区域分清楚这个目的,但会把“还能看见多少代码”一起算进去。 博客随后给出的回应,正好落在密度和标签这两处。

Layout Density(布局密度)新增的紧凑档,就是在保留现代 UI 结构和定制能力的前提下收紧间距。可以在标题栏的 Customize Layout 中选择 Layout Density → Compact,也可以把 window.density.layout 设为 compact。我会把紧凑档理解为一次密度补偿:官方明确回应了“少看见代码”的问题,但没有给出它能回收多少像素的数据。

标签的变化则更直观。早期胶囊式标签像独立按钮,浮在编辑器上方;当主题的活动状态颜色不明显时,当前标签和下面的内容不容易连起来。Connected Tabs 把两者接成连续区域。我更看重它恢复了“这个标签对应这块内容”的熟悉线索。新样式如果让当前文件更难辨认,就有理由改回来。

此外,原文还列了几个可选设置。我会按遇到的问题来找它们:

  • workbench.experimental.modernUIUppercaseViewHeaders:视图标题、侧边栏标题、面板标签是否用全大写(实验性,未来可能改)。
  • workbench.activityBar.compact:让活动栏更窄(受支持的设置)。
  • workbench.editor.tabActionReserveSpace:标签是否始终预留操作按钮的位置;关闭后,没有待保存改动的非活动标签可以多留一些空间给标签文字(受支持的设置)。

这里我会多看一眼设置名。带 experimental 的设置可能调整或移除;另外两项是受支持的自定义选项。它们都不要求用户为了迁移而逐一配置。 先找到具体不舒服的地方,再改对应设置,比整套照抄更合适。

04|看到 8.2%,我先找它的比较对象

性能这一段,我先找测试场景和比较对象。官方把调整窗口与面板大小、切换视图、滚动、打开差异对比、运行控件动画串成可重复的基准,比较现代 UI 的一批样式选择器修复前后的变化。

问题可以先用人话讲:界面状态变化后,浏览器要重新判断哪些样式该应用到哪些元素。CSS 选择器就是描述这些匹配条件的规则;如果它需要检查很大一片页面元素,重算就可能多做工作。

原文的做法,是把部分需要检查大范围页面结构的选择器,换成组件自己维护的状态类。比如差异概览是否存在、调试操作是否出现,组件本来就知道,可以直接用类名标记,减少样式匹配时再次推断的开销。

我把结果并排放,避免只挑下降的数字看。下面沿用博客披露的口径,比较对象都是现代 UI 修复前后:

指标修复后的相对变化我怎样读
样式重算时间-8.2%样式匹配的耗时下降
整组基准的实际经过时间-3.3%这组交互整体耗时下降
布局时间+6.6%这一项反而增加,不能省略

这些百分比对应不同耗时项目,不能直接相加抵消。博客明确限定:修复追回了相对旧界面的部分差距,没有全部追回。我对照的性能修复记录也把旧界面、现代 UI 修复前、修复后三组结果分开列出;上表沿用博客的百分比口径。

真正让我想划线的,是后续怎么防止退回去:他们加了静态检查规则,拒绝已知开销大的选择器,还提供 npm run perf:css 重复测量。我能从这里借鉴的是:修掉一次性能问题之后,把已知坏模式交给规则拦截,把效果交给基准继续验证。 这比把 8.2% 写成“VS Code 全面提速”有用得多。

05|读完之后,我会先改哪里

回到日常使用,我会先检查自己有没有遇到代码区变挤、标签难辨认的问题。界面如果已经顺手,就没有必要为了追上改版,把设置重新折腾一遍。

主题这件事也可以先放轻松。原文说明,现有主题兼容现代 UI 和旧界面;新增的颜色标识符(color IDs)如果没有定义,会回退使用已有工作台颜色。我据此理解:继续用原来的主题,不需要先迁移到新颜色配置。

如果要精细控制界面底色、边框、标签、活动栏和窗口状态,再考虑新颜色 ID。它们仍是实验性的;主题作者需要检查新旧两套界面,以及浅色、深色、高对比度主题。我会把这笔验证成本算进修改计划,只看一套深色界面还不够。

假设用一台 14 寸笔记本,代码区比较紧张,我会按下面的顺序尝试,具体效果要在自己的版本和屏幕上确认:

  1. 先把 window.density.layout 设为 compact,比较同一窗口大小、缩放和分组下,代码与终端的可见空间是否更合适。
  2. 如果活动栏仍然占地方,再尝试 workbench.activityBar.compact,避免一次改太多项,分不清是哪项起了作用。
  3. 标签先看默认的连接式设计能否清楚标出当前文件。只有偏好胶囊样式时,才查看 workbench.experimental.modernUIEditorTabStyle;博客没有提供具体取值,我不补写。

全大写标题和新颜色 ID,我会等有明确需求再动。至于旧界面还能保留多久,博客只确认了计划退役、尚未确定移除日期,并承诺提前通知。我不会据此猜一个截止时间。 如果紧凑档和颜色调整仍然影响工作,过渡期内切回旧界面也是官方保留的选择。


写在最后

读完这篇,我更能理解 VS Code 为什么选择从工作台外壳改起:它要让手动编辑和委托智能体工作共用一套基础,又得照顾已经形成的操作习惯。“先在新窗口跑通,再回填”的路径,给成熟产品改界面提供了一个不掀桌子的做法。但共享规则能否适合不同屏幕和布局,还得继续接受用户反馈与性能测量。

我会用一个很实际的标准看后续改进:找文件、辨认当前标签、看终端输出这些事,能不能照常顺手。遇到问题时,记录屏幕分辨率、缩放、主题和布局,比只说“新 UI 不好看”更能帮助团队定位原因。

如果你已经试过紧凑档,在相同缩放和编辑器分组下,代码区变挤的问题解决了吗?


作者:猫咪不吃愚(科技从业者 / 程序员 / 运动爱好者) 写于 2026 年 10 月

AI 协作声明:本文含 AI 辅助检索、解读与文字改写,依据 VS Code 官方博客 Modernizing the VS Code UI(2026-10-15)及文中链接的官方记录整理。文中性能数字来自官方披露,配置建议未经本地实测;以第一人称表达对原文的理解与取舍。

封面由 AI 辅助生成;按平台规则发布时保留 AI 生成内容标识。