Zed 新特性:Git面板视图重构,像VS Code看齐了。
引言
日常多模块开发时,Git变更列表的展示逻辑直接影响代码提交效率。此前Zed旧版Git面板仅提供单一布尔开关,排序、分组逻辑耦合在一起,想要无分割树形视图、按文件名排序等需求全部无法实现,社区长期存在三条相关Issue反馈视图割裂、排序不统一问题。zed彻底重构Git面板视图控制层,拆分独立排序、分组、布局配置,同时打通Git面板与项目差异窗口展示逻辑,补齐长期短板。下面结合实测体验,横向对比VS Code、JetBrains IDEA的版本控制视图能力,谈谈这次重构的设计巧思与行业定位差异。
一、重构核心痛点与底层优化逻辑
旧版Zed仅靠sort_by_path一个布尔值同时控制两件事:文件排序规则、变更分组逻辑,二者强绑定导致大量使用场景无法覆盖。例如开发者希望树形视图但不区分已跟踪/未跟踪文件,或是平铺列表按文件名排序、不按状态分组,旧开关完全无法兼顾。
本次重构核心改造分为三层:
- 配置解耦:拆分为两个独立枚举配置
git_panel.sort_by(路径/名称)、git_panel.group_by(无分组/按状态分组),三类视图形态(树形/平铺)完全独立可控,配置互斥清晰,后续易扩展新视图模式。 - UI交互优化:新增独立滑块图标视图菜单,不再藏在折叠更多操作内,切换布局一键完成;树形视图自动禁用排序选项,符合目录优先的浏览直觉;关闭分组后自动移除「已跟踪」标题,界面更清爽。
- 全局视图同步:统一Git面板与项目差异窗口的排序、树形规则,切换视图不会打乱文件顺序;同时持久化文件折叠状态,切换布局后不用重新展开目录,底层改用稳定路径键,避免频繁重绘产生性能损耗。
整套改造兼顾交互易用性与底层性能,同时一次性关闭三条社区长期反馈的视图不一致Bug。
下面来说说怎么使用
在Changes页面,点击右边切换的图标,也就是stage all左边的那个图标
会出现如下选择
默认是List方式展示,可以选择Tree
在LIST的时候,还支持根据文件路径或者文件名来排序
二、横向对比三大编辑器Git视图能力
1. JetBrains IDEA:重型全量分组,偏向任务式开发
IDEA Changes面板核心优势是支持自定义变更列表(Changelist),可手动把文件归类为不同任务,搭配AI智能分组,适合多需求并行开发;视图支持树形/平铺切换,可自由开启、关闭状态分组,排序规则丰富。
但缺点是功能冗余,大量鼠标操作,对纯键盘流模态开发者不友好,界面层级繁杂,轻量化开发场景冗余功能干扰视线。
idea默认也是list方式展示,设置tree方式需要如下点击Directory
2. VS Code:基础够用
VS Code源代码管理支持树形/平铺切换,可设置默认视图模式,也支持排序、分组。排序分组需要手动修改设置。
3. 新版Zed:轻量化细粒度控制,键盘流最优解
Zed形成差异化优势:
- 视图控制独立快捷入口,无需展开折叠菜单,纯键盘操作可快速切换;
- 排序、分组、树形三大维度完全解耦,组合场景覆盖绝大多数开发习惯;
- Git面板与差异窗口数据、排序完全同步,折叠状态持久化,切换无割裂感;
- UI极简,无多余分组、任务功能,专注文件浏览,适配轻量化、模态编码人群。
短板是缺少IDEA自定义变更列表、AI智能分组,适合单一需求迭代,复杂多任务并行场景不如JetBrains。
从长期交替使用Zed、VS Code、IDEA的后端视角来看,这次重构抓住了Zed核心用户群体——键盘流开发者的核心痛点。
VS Code、IDEA的Git视图设计都偏向鼠标操作:功能入口深埋菜单、依赖右键弹窗管理分组;而Zed本次新增独立视图快捷栏,所有布局切换一步到位,搭配原生模态键位,全程不用移动鼠标,贴合产品「键盘优先」的底层设计理念。
同时配置解耦的设计极具前瞻性,将排序、分组、视图形态拆分为独立枚举,后续新增自定义分组、自定义排序规则时无需大规模重构,扩展性远优于VS Code耦合式开关设计。
但也要客观看到短板:目前仅提供基础视图展示优化,缺少任务级变更分组、批量标记变更等重型版本管理功能,对于大型企业多分支、多需求并行开发,依旧需要搭配JetBrains。
整体定位十分清晰:Zed不追求大而全的Git功能,而是在轻量化、键盘友好这条路线持续打磨,把高频浏览变更的体验做到行业前列,和VS Code、IDEA形成明确分层。
结语
如果你经常切换树形/平铺查看代码变更、厌烦多窗口文件顺序错乱,更新后这套Git视图会大幅降低日常提交的操作损耗;如果依赖复杂任务变更分组,则可按需搭配JetBrains互补。这次社区驱动优化,也体现Zed持续打磨版本控制基础体验的产品思路。
