进阶 onorca.dev 2026-10-18 18:52:10 · 21 阅读

第41章 Diff 查看器详解

#### Diff viewer Orca 的 diff viewer 专为深入审查 AI 生成的代码而设计,并非供快速一瞥使用。每个 worktree 都内置了与其起始 ref 的对比视图。

特性

* 支持跨所有已暂存、未暂存及未跟踪文件的综合 diff 显示。 * 双方行号均可见,且支持开关。 * 提供图片 diff 功能,支持二进制图像的并排、滑动及洋葱皮(onion-skin)等对比模式。 * 提供 HTML 预览功能。在“查看全部”或综合 diff 视图中,对于工作树中仍存在的 HTML 部分,除始终可见的文件打开控件外,旁边还会显示“侧边打开预览”(眼睛图标)。点击预览可在侧边浏览器分栏中打开工作树内的 HTML。已删除的 HTML 或仅包含提交的综合视图则不显示该图标。 * 提供合并冲突界面,支持三方视图及内联解决。 * 支持按 hunk 或行进行暂存操作,功能类似 git add -p,但具备可视化界面。 * 支持显示空白字符。在审查 diff 时,可展示空格、制表符及其他空白字符。可在 diff viewer 操作菜单中切换该功能。 * 支持折叠未变更区域。可选择折叠文件 diff 中较长的上下文连续段落,使变更行保持可见。该选项在 diff 编辑器操作菜单中启用,默认处于关闭状态。

范围指定 默认情况下,diff 展示的是相对于 worktree 起始 ref 的变更。可通过 diff 工具栏切换为与任意 commit、分支或基础 ref 进行对比。

自动换行 开启 diff 自动换行后,长行将原地换行,使得宽大的 diff 能够从上到下阅读,无需横向滚动。该功能默认关闭。可在 diff 编辑器头部通过 ⋯ 操作菜单切换“自动换行”,或在全局设置(Settings → General → Diff Word Wrap)中修改默认值。两者共用同一设置——在编辑器中切换将同步至全局。

未变更区域的折叠与自动换行仅应用于文件 diff;综合 diff 保留其自身的文件树及 hunk 控制功能。

文件树 综合 diff 可在 hunk 旁显示可折叠的文件树。拖动文件树的调整手柄(或使用手柄上的方向键;按住 Shift 键可倍增步进幅度)即可设置宽度——该大小会在会话间记忆。可通过综合 diff 工具栏折叠或显示文件树。

键盘快捷键

* j / k — 切换至下一个 / 上一个变更文件。 * n / p — 切换至下一个 / 上一个 hunk。 * F7 / Shift+F7 — 在当前活动编辑器中切换至下一处 / 上一处变更。 * s — 暂存光标下的 hunk。 * c — 开始添加注释(Annotate AI Diff)。

评论 (0)