把三邊改動收進一個視窗:KDiff3 1.12.5 逐字元標差異,衝突當場解決
摘要
三份檔案擺在一起看:KDiff3 1.12.5 提供三向合併與逐字元比對,衝突在內建編輯器裡就能定案;授權 GPL-2.0-or-later,三個平台都有包。
推薦- 軟體名稱
- KDiff3
- 版本
- 1.12.5
- 收費
- 免費
- 開源
- 開源
- 作業系統
- WindowsmacOSLinux
- 更新時間
- 2026-10-21 15:48
兩份檔案比對是日常活兒,三份檔案一起比才是 KDiff3 的主場。它不是只告訴你哪裡不一樣,而是讓你在同一個視窗裡把三邊改動合成一份。
版本停在 1.12.5
按 KDE 應用站給出的發布記錄,KDiff3 目前版本是 1.12.5,日期為 2026 年 7 月 20 日。往前追溯,1.12.4 是 2026 年 2 月 16 日,1.12.3 是 2025 年 5 月 10 日,再往前 1.12 系列從 1.12.0 一路排下來,中間還有 1.11.x 與 1.10.x 各若干版。
版本 | 發布日期 |
|---|---|
1.12.5 | 2026 年 7 月 20 日 |
1.12.4 | 2026 年 2 月 16 日 |
1.12.3 | 2025 年 5 月 10 日 |
這個節奏說明它是維護型專案:一年兩三個點版本,沒有大版本跳變,也沒有功能行銷。對一個從 2000 年代就在用的工具來說,這種節奏本身就是訊號——它已經穩定到不需要靠新功能維持存在感。

三向合併到底解決什麼問題
兩路比對回答的是「這兩份檔案哪裡不一樣」。三向合併回答的是另一個問題:兩個人從同一份原始檔案各自改過之後,怎麼把兩邊的改動合到一起,而且不把對方改的東西覆蓋掉。
KDiff3 的官方描述是「比較並合併兩個或三個文字檔案或資料夾」。三份的形態是原始檔案加兩邊各自的修改版本,工具會把三邊攤開,標出哪些行只有 A 改了、哪些行只有 B 改了、哪些行兩邊都動了。兩邊都動的那些行才會被抬成衝突,交給人工判斷。數字上的差別很直接:兩路比對要人逐行看過去,三向合併只需要看被標記出來的那幾處。
它同時支援檔案與資料夾兩種粒度。資料夾模式下比對的是整棵目錄樹,子檔案的差異狀態會彙總到清單裡,改過的、新增的、缺的都標出來。
逐字元,不只是逐行
官方對這項能力的描述裡特意加了個驚嘆號:逐行且逐字元地顯示差異。逐行比對是行業標配,逐字元不是。差別在長行的場景裡很明顯——一行幾百個字元的設定項或壓縮過的程式碼,逐行比對只會告訴你「這行變了」,逐字元會把變的那幾個字元單獨標出來。
這項能力在審程式碼改動時實際價值不小。變數名從 userName 改成 user_name,逐行視角看到的是整行高亮,逐字元視角看到的是中間那一段。
衝突在編輯器裡直接解決
比對工具常見的問題是「找到了差異,但改還得換個地方改」。KDiff3 內建了一個合併編輯器,衝突行會以標記形式出現在輸出區,可以在原地選擇保留哪一邊、或者兩邊都留、或者手工改寫。截圖裡底部那塊輸出面板就是幹這個的。
更實用的是視窗底部那行狀態提示:剩餘未解決衝突數量,括號裡還會註明其中有多少是純空白差異。寫合併的時候最怕的就是改到一半忘了還剩幾處,這行數字把這件事變成了可核對的進度。

空白與註解可以被藏起來
縮排被編輯器自動改了、行尾多了一個空格、註解被格式化工具有規律地重排——這些差異在語意上沒有意義,但會把真正需要看的改動淹沒掉。KDiff3 提供了對空白與註解差異的高亮與隱藏選項:需要看的時候高亮,不需要的時候收起來。
這條能力在接手別人程式碼或者處理一次大規模格式化之後特別有用。差異數量從幾百處降到十幾處,剩下的才是需要判斷的內容。
編碼和換行的差異要單獨看
官方明確寫了支援 Unicode、UTF-8 以及其他檔案編碼。實際介面裡,每個文字窗格的右上角都會顯示目前辨識到的編碼和行尾風格——截圖裡能看到 Encoding: UTF-8 與 Line end style: Unix 這兩項。
這兩項單獨列出來不是裝飾。跨平台協作裡最常見的一類「假差異」就是換行符:同一份檔案在 Windows 上是 CRLF,在 Linux 上是 LF,逐行比對會把整份檔案標成全紅。把行尾風格明確擺出來,問題立刻定位到換行而不是內容。
KIO 與版本控制關鍵字
它透過 KIO 提供網路透明存取,也就是說遠端資源按 KIO 的位址形態填進去就能直接比對,不必先把檔案拉到本機再比。對經常要拿伺服器上的設定和本機副本對照的人來說,這一步省掉的是下載與清理。
另一項容易被忽略的能力是版本控制關鍵字與歷史合併支援。帶 Revision、Date 這類關鍵字的檔案,在版本庫之間比對時關鍵字本身會被展開成不同的值,KDiff3 能在比對時把這些展開差異處理掉,避免它們被當成真實改動。
裝法不止一種
KDE 應用站給出的入口有三類:Linux 上可以透過 Discover 這類支援 AppStream 的應用商店安裝,也可以走發行版自己的套件管理器;跨發行版的通用做法是 Flatpak,ページ面上直接給了 Flathub 入口;Windows 與 macOS 有對應的安裝包,ページ面上按 ARM 與 Intel 分別列出。
專案另外提供 nightly 安裝包,走 KDE 的 CDN 分發,定位是測試用途,ページ面自己也標註了這是不穩定版本。想跟進開發分支的人才需要它。授權是 GPL-2.0-or-later,源碼與缺陷追蹤都在 KDE 的 GitLab 上,手冊掛在 KDE 文件庫站,另有官方論壇。
什麼時候它最省事
日常只比兩份檔案的場景,任何工具都能幹,用不著特意裝它。真正讓它顯出價值的是三種情況:需要在兩份修改之上做合併、需要在長行裡定位到具體哪幾個字元變了、以及需要在檔案與資料夾兩個粒度之間來回切換。
如果手邊的工作流是 Git,把它配成外部合併工具也是常見用法——三向合併正是 Git 衝突解決時的天然形態,而它恰好原生就支援三個輸入。
KDiff3 的價值不在功能清單有多長,而在它把「三份檔案怎麼合」這件事從頭到尾收在了一個視窗裡:看差異、判衝突、改內容、核對剩餘數量,一步都不用離開。