什麼是文字差異比對?

文字比對工具精確標示兩段文字之間的差異。新增、刪除和修改的內容以不同顏色並排顯示或在統一檢視中呈現。它同樣適用於程式碼版本、文件修訂和設定檔。

本工具以 Myers 演算法比對,既能找出整塊順序的調整,也能捕捉單行的小更動。可以逐行比較,也可以切換到逐字詞粒度以適合散文;勾選「忽略空白」可略過純格式差異;勾選「忽略大小寫」後,僅大小寫的更動不再算作差異;點「對調」可對換哪一側是原文。結果可看統一檢視(帶 + 與 - 前綴,方便貼進提交訊息),也可看左右並排檢視。檔案較長時會收合未更動的段落,並提供上一處/下一處箭頭逐個查看更動。兩側輸入都是自由文字,因此程式碼、JSON、散文或日誌都能處理。

使用方法

  1. 將原始文字貼到左側面板,將修改後的文字貼到右側面板。
  2. 檢視標示的差異:綠色表示新增、紅色表示刪除、黃色表示修改。
  3. 在並排檢視和統一差異檢視之間切換,或複製差異結果用於文件記錄。

何時使用

  • 把合約或文章修改稿和原稿對照,確認改動後再寄出。
  • 服務出狀況時,找出兩份設定檔之間到底改了哪幾行。
  • 校對翻譯稿和原文,確認沒有漏譯或多譯。

結果

一位開發者貼上兩個版本的設定檔,立即看到新增了3行、刪除了1行、修改了2行——每處變更都在上下文中標示顯示。

常見問題

是按字元比對還是按行比對?
都可以。預設的逐行模式把整行視為一個單位,所以一個錯字會把整行舊內容標為刪除、新內容標為新增,並在行內highlight出實際更動的字元。切換到逐字詞模式後,它會逐詞比較,對散文和設定值更易讀。
能處理幾千行的大檔案嗎,例如 5000 行的日誌?
可以。檔案較長時,工具會自動把大段未更動的內容收合起來,只保留幾行上下文,這樣你看到的主要就是真正更動的部分。用差異上方的上下箭頭可以直接在各處更動之間跳轉,如果並排兩欄顯得擁擠,切到統一檢視即可。
空白字元算差異嗎?
預設會。行尾空格、多出的空行、定位字元與空格的差異都會被算成更動。勾選「忽略空白」後,這些純格式差異就會被略過,只顯示真正的編輯。逐字詞模式本身也會合併連續的空白。
可以只複製差異內容,不要兩邊的原文嗎?
可以。複製按鈕匯出的是統一格式的差異(帶「+」「-」前綴),貼到程式碼評審、信件、文件說明都沒問題。
和 git diff 是一回事嗎?
底層演算法相同(都是 Myers 差異),所以同一對輸入產生的結果會和 git 的行級差異一致。差別是這裡可以對比任意兩段文字,不必有倉庫或提交歷史。

相關工具