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 工具。

相關工具

最後更新: