Toolify

文本差分工具 — 行级对比, 颜色标注

粘贴原始与修订版即可看到逐行差分。文档、配置、代码审查、文章编辑场景适用。

粘贴两版本以查看差分。

工作原理

差分如何计算

用最长公共子序列 (LCS) 算法找两版本间的共享行。共享的为「未变」, 仅在原始中的为「删除」, 仅在修订版中的为「新增」。结果是带行号双方对照的清晰注解。

LCS 是 git 与多数 diff 工具采用的标准方法, 选最长可能的匹配序列, 通常匹配人会说的「同一段」。1 万行以上输入运行时呈二次增长; 大日志对比请用流式 diff。

适用场景

文档修订: 起草版本间到底改了什么。法律合同、服务条款、任何「改了什么」重要的文本。

配置文件: 对比两个 .env 或 YAML 找配置错误。或两版部署脚本。

文章编辑: 作家在上下文中看编辑修改, 尤其几行变化的场景。

代码审查 (轻量用): 短代码片段。真正代码审查请用懂语法的工具 — git diff 语义标志或专门的审查工具更好。

限制

我们按行粒度比较。把行内 'cat' 改成 'cats', 整行显示为「删除并新增」 — 不高亮单个 's'。词级和字符级 diff 对此有用, 但长行难读。

尾部空白显著 — 'foo' 与 'foo ' (尾部空格) 算不同行。需要忽略空白请先规范化。

顺序很重要。同段落不同位置算「删除并新增」。本工具不检测「移动」块。

常见问题

支持词级 diff?

暂不 — 仅行级。短对比场景的字符或词粒度后续可能添加。

可以多大文本?

实际可达每边几千行。二次复杂度意味着超大输入可能短暂卡住浏览器标签。

数据会上传吗?

不会。差分完全在本地。

尾部空格显著吗?

显著。仅尾部空白不同的两行算不同行。需忽略空白请粘贴前规范化。

可以保存差分吗?

不能保存为文件。当前可复制粘贴渲染文本或截图。

与 git diff 算法相同?

概念上相同 — 我们用 LCS 是 git 选项之一。git 默认类似但更复杂的 (Myers diff, 选项中有 Patience)。短输入输出基本一致。

为什么仅一个词改变整行被标记?

因为按行粒度。字符级 diff 会高亮变化词但长行更难读。

可以对比 2 个以上版本?

本工具不行。多向合并请用专门的 3-way diff 工具。

相关工具

最后更新: