在代码编辑器的世界里,增加功能往往比删除功能容易得多。增加功能是“加法”,给人感觉在进步;而删除或简化功能是“减法”,需要勇气和对产品核心体验的深刻理解。
Zed 新版本的solo diff,就是一次精妙的“减法”实践。它的目标很明确:让 solo diff 视图(即查看单个文件变更的界面)更干净、更专注、更符合直觉。它没有引入革命性的新功能(除了一个关键的“打开文件差异”操作),而是通过重新组织 UI 控件和清理失效的界面元素,让整个体验焕然一新。
核心改进:从“冗余”到“精准”
1. 合二为一的暂存/撤销按钮
在改进之前,solo diff 视图的标题栏同时显示了“Stage File”和“Unstage File”两个按钮。这听起来很“完整”,但实际上,一个文件在同一时刻只可能处于两种状态之一:要么已暂存,要么未暂存。同时显示两个互斥的操作,不仅浪费宝贵的界面空间,还增加了视觉噪音,让用户需要多花一瞬间去判断“哪个按钮是能点的”。
新版本的解决方案非常优雅:将两个按钮合并为一个,动态显示当前上下文相关的操作。
- 如果文件未暂存,显示“Stage File”。
- 如果文件已暂存,显示“Unstage File”。
这个改动虽小,但它是信息设计中的一个重要原则:在任何时刻,只呈现给用户当前可用的、相关的操作,减少不必要的认知负担。
2. 隐藏失效的折叠控件
在拆分差异视图(split diff view)中,右侧面板(显示文件最新版本)的 gutter 区域(行号左侧)原本会保留代码折叠的交互控件(小箭头)。但这只是视觉残留,因为在该视图下,折叠功能是无效的——你点了也不会有什么反应。
这次果断地在 companion 面板中完全隐藏了折叠控件的保留空间和交互元素。这带来的好处是双重的:它既避免了用户被一个“看上去能用但实际不能用”的按钮误导,也让代码阅读区域的视觉干扰更少,界面更加干净。
3. 新增“打开文件差异”操作(Git: Open File Diff)
这是本次 PR 中唯一一个明显的“加法”。它在 solo diff 视图中添加了一个新操作,允许用户快速在编辑器中打开当前文件的差异视图。正如 reviewer@ChristopherBiscardi所说:“一旦我在本地副本中有了它,我就立刻想念它没有出现在 nightly 版本中。”
这个操作的加入,补全了一个重要的工作流:当你在 diff 视图里审查变更时,你可能想更完整地查看文件上下文,或进行一些编辑。一键打开文件差异,让你能无缝从“审查变更”切换到“编辑文件”模式。
或者直接在changes页面打开
在视觉和交互设计上,有一个著名的观点:“好的设计是尽可能少的设计。” zed这次 正是这个观点的生动实践。
我们很容易陷入一种思维定式:为了让用户觉得强大,就要堆砌功能。但真正的强大,来自于对核心场景的深刻理解和对冗余的勇敢舍弃。Zed 的这次改动,没有改变任何核心功能,却通过微调 UI,显著提升了 solo diff 视图的可用性和愉悦感。
这让我联想到 Apple 在硬件设计上的理念:去掉所有不必要的东西,直到剩下的每一个元素都无可挑剔。Zed 正在这条路上稳步前进。对于用户而言,这意味着一个越来越懂你、越来越不打扰你的工具。对于编辑器的设计者而言,这提醒我们:下一次你想加一个新按钮之前,先看看能不能删掉一个旧的。