
人对无条件就能获取的东西和给与东西的人
都不会有什么珍惜感

从 Zed v0.224 开始,分栏 Diff(Split Diffs)成为默认视图。左侧显示基础版本,右侧显示你的修改,两侧同步滚动、实时对齐。这是 2025 年 Git 集成发布后用户最期待的功能。
分栏 Diff 视图是代码审查的标配功能,但做得好和能用是两码事。
当这个功能构建得当时,它应该是直觉化的、无缝的。但我们知道,这种"直觉化"的感觉来之不易。Zed 的分栏 Diff 视图必须匹配编辑器的整体风格:快速、极简、精心打造。
构建这个新视图特别棘手,因为 Zed 的 Diff 不是孤立的文件-by-文件视图。
Zed 的 Diff 构建在 multibuffers(多缓冲区) 之上,这是一个跨越多文件的单一可编辑表面。
这意味着我们在设计分栏 Diff 时,必须应对其他编辑器不需要面对的挑战:
在 Zed 中,你可以:

Zed 的项目 Diff(Project Diff)支持一次性显示所有更改的文件,全部在一个 multibuffer 中。
这意味着分栏 Diff 视图必须优雅地扩展。而且由于 multibuffer 的统一性质,单个对齐错误可能级联到整个 Diff。

要让分栏 Diff 在正常工作,需要解决两个硬核问题:
分栏 Diff 视图看起来像一个 multibuffer,但在底层实际上是两个。
zed最后确定了一种简单而优雅的解决方案:
// 核心思路
左侧 = 旧版本文件 + 红色高亮删除部分
右侧 = 新版本文件 + 绿色高亮新增部分这个模型的优势:
Block Map 设计为在每次击键时重新计算块装饰的位置,并且它在 multibuffer 中的所有文件之间共享。
性能敏感性:

分栏 Diff 在今天的稳定版中已可用,并且是新的默认设置。
打开方式:
打开项目 Diff 或分支 Diff
→ 自动显示分栏视图Zed 的分栏 Diff 不是简单的功能添加,而是架构优势的体现:
✅ 快:大型更改集依然流畅 ✅ 稳:编辑时保持完美对齐 ✅ 智能:Multibuffer 体验的自然延伸