FormLab

文本 Diff 对比

行级 / 字符级 / 词级 · 同步滚动 · 差异统计 · 复制单边。

—
A 输出
B 输出

它能解决什么问题

Diff 是程序员每天都要做的事。本工具比 Git 的 diff 简单直接,专注于:

使用技巧

  • 代码对比:先用空格 / 缩进统一的编辑器(VSCode)格式化两边,再粘贴进来,避免大量"假差异"。
  • 字符级 diff:适合英语短句,不适合中文长段落(中文按字 diff 视觉信息量太低)。
  • 大文件:本工具用经典 Myers-like LCS 算法,单文件 < 1 万行时秒级响应。超过建议用 git diff 或本地 diff 工具。

FAQ

为什么和 git diff 不一样?

git diff 做了行内重新对齐(hunk header),能看到更细的"修改了什么字符"。本工具是纯 LCS(最长公共子序列),没有 hunk 概念。粒度更细但视觉密度更高。

用「文本 Diff 对比」时最容易踩的坑是什么?常见的易错点集中在四处:一是把百分数和小数混着填,比如 20 填成了 0.2;二是漏填选填项后直接按默认值算,得到一个看起来正常但不是你想要的数;三是中途改了其中一个输入却忘了重新计算,页面上还留着上一轮的旧结果;四是把页面上写的「参考值」当成了「准确值」往对外的材料里搬。改完任何一项输入,都重新点一次计算按钮再读结果。
「文本 Diff 对比」的适用边界在哪里?行级 / 字符级 / 词级 Diff 对比,支持同步滚动、统计差异、复制差异行。基于 LCS 算法。 换句话说,它解决的是「按你给的条件做一次快速估算」这一类问题,不适用于需要查权威数据、核对官方文件,或者要逐条审合同、做专业判断的场景。凡是结果会直接影响到花钱、签约、对外承诺的事情,都应该回到原始资料和官方口径再确认一次,把这里的输出当作中间的一步,而不是终点。
「文本 Diff 对比」的结果应该怎么看?先看最后给出的那个数值,再回到这一段解释里对照:行级 / 字符级 / 词级 Diff 对比,支持同步滚动、统计差异、复制差异行。基于 LCS 算法。 看的时候把「数值本身」和「数值成立的前提」分开看,前者是你填进去的东西算出来的,后者决定了它在什么情况下才算数。数值变大或变小分别代表什么,页面在这一节里已经写清楚了。
拿到「文本 Diff 对比」的结果后可以直接照着做吗?把它当成做决定前的一份对照材料,比当成答案更稳妥:行级 / 字符级 / 词级 Diff 对比,支持同步滚动、统计差异、复制差异行。基于 LCS 算法。 这一页给出的是在当前输入下算出来的一个量级,它并不包含你的实际执行成本、突发情况和对方可能的变化。真正落地之前,再把结果和实际条件对一遍,看看哪些假设在现实里不成立。
文本 Diff 对比需要填写哪些信息?「文本 Diff 对比」一共用到 5 个输入项:粒度: 行 字符 词(中文按字)、忽略行尾空白、同步滚动、原文(A)、新版(B)。这些字段在页面上是按计算顺序排下来的,前面的输入会直接影响后面的结果,所以不要跳过看不懂的那一栏。建议先把每个数字的单位口径对齐再动手填,单位不统一是这类计算里最常见、也最容易被忽略的错误来源。
开始用「文本 Diff 对比」之前需要先确认什么?建议先确认三件事:一是你要解决的问题,是不是正好落在它的适用范围里,别拿一个相邻的工具硬套;二是手上每个数字的统计口径和时间点是否一致,比如同一年里有的按月、有的按年,直接混用会让结果失真;三是算完之后有没有留出复核的余地,比如把关键输入记下来,方便回看时知道当时用的是哪一组数。
谁适合用「文本 Diff 对比」,谁不适合?适合的是手上已经有明确数字、需要快速得到一个量级参考的人,比如在做预算草案、给同事对齐口径、或者上课前先估算一遍的人。不适合的是想把结果当精确值直接对外承诺的人,也是不适合连输入项口径都还没定下来就开始算的情况——这种情况下先花几分钟把口径理清,比算完之后再来回改数字省事得多。
「文本 Diff 对比」怎么用才不容易算错?按页面「使用说明」那一段的顺序来:行级 / 字符级 / 词级 Diff 对比,支持同步滚动、统计差异、复制差异行。基于 LCS 算法。 使用方法的关键在于「顺序」和「口径」两件事:先按顺序把需要的量准备好,再确认每一项的单位和你要解决的问题一致。这两点做到了,基本不会算错;漏掉任何一点,结果都会整体偏掉。

相关工具