文本对比工具使用说明
「这两稿到底改了哪几个字?」是写东西的人经常要回答的问题。肉眼逐行看效率低还容易漏,尤其是上百行的代码或者几千字的合同。这个工具用差分算法(diff)自动算出两段文字的最小编辑路径,把每一处增加、删除、修改都标出来。
怎么读懂对比结果
- 左侧是原文,右侧是新文。 左右两栏行号对齐,同一行号代表对应的位置。
- 绿色 = 新增。 这一行只在右边(新版本)出现,原文里没有。
- 红色 = 删除。 这一行只在左边(旧版本)出现,新版本里被去掉了。
- 黄色 = 修改。 两边都有这一行,但内容不完全一样。勾选「行内字符级对比」后会进一步标出这一行里具体哪几个字变了。
- 灰色 = 未变。 两边完全一致的内容,用来定位上下文。
四个选项分别管什么
- 忽略大小写:把
Hello和hello当成相同的。对代码做比对但不在意命名风格时很有用。 - 忽略首尾空白:去掉每行开头和结尾的空格、Tab 后再比。避免因为缩进方式不同(空格 vs Tab)产生大量无意义的差异。
- 忽略空行:两边的空行不参与比对。排版时多按了几个回车,不会算成改动。
- 行内字符级对比:在行级差异的基础上再做一次字符级差分。适合改字、改数字这类小改动——不开这个选项,改动只在行级别标出来,你看不出具体动了哪个字。
几个使用建议
对比前先规范一下格式。 如果一边是 Word 复制出来的(带不换行的长段落),一边是纯文本,直接比会整段都标成改动。建议先在两栏里都按段落敲一次回车。
长文本会慢一些。 差分算法的时间复杂度与文本长度相关。本工具对超长文本(几千行以上)会自动退化为更快的近似算法,结果更粗但有参考价值。
结果可以直接抄走。 对比结果区是纯文本渲染的,你可以直接选中复制颜色标记出来的内容,粘到邮件或文档里做说明。
常见问题
为什么我把一整段挪了位置,结果却显示成大量删改?
因为 diff 算法本质上算的是「编辑距离」,它找的是从旧文变成新文最少的操作步骤。把一段内容从第 3 行移到第 20 行,算法看到的是「第 3 行删掉了、第 20 行新增了」,而不是「移动了」。这是所有 diff 工具的共性,Git 的分支对比也一样。如果你的目的是看内容有没有实质性变化(而不是排版位置),可以先把两边的段落顺序都排一遍。
能对比 Word 文档或 PDF 吗?
本工具只处理纯文本。可以先用编辑器的「全选复制」把内容粘进来,或者分别另存为 .txt 再复制。注意 PDF 复制出来的文本经常带奇怪的换行和空格,建议先粘到记事本里清理一下。
内容会不会被上传?
不会。差分算法完全用 JavaScript 写在页面里,你粘贴的文本只存在于浏览器内存中,刷新页面就没了。可以用断网的方式验证——断网后功能照常。
最多能贴多少字?
没有硬性上限,但建议控制在几万行以内。超过这个量,浏览器渲染那么长的对比结果会明显卡顿,体验还不如用本地的专业工具(比如 VS Code 自带的 diff,或者 WinMerge、Beyond Compare)。
「修改」和「一增一删」有什么区别?
取决于算法能不能在两边找到相似的配对。如果左边第 5 行和右边第 5 行有一半以上内容相同,就判定为「修改」,并进一步标出改动的字符;如果两边完全找不到相似的行,就拆成「左边删了一行 + 右边加了一行」。后者在结果上看是一红一绿相邻出现。