KDiff3 1.12.5 更新:三份文件一起比,GPL 开源的跨平台合并工具
摘要
KDiff3 1.12.5 已发布:三向合并、逐字符高亮与内置冲突编辑器,GPL-2.0-or-later 许可,Windows、macOS、Linux 通吃。
推荐- 软件名称
- 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 各若干版。
这个节奏说明它是维护型项目:一年两三个点版本,没有大版本跳变,也没有功能营销。对一个从 2000 年代就在用的工具来说,这种节奏本身就是信号——它已经稳定到不需要靠新功能维持存在感。
三向合并到底解决什么问题
两路对比回答的是"这两份文件哪里不一样"。三向合并回答的是另一个问题:两个人从同一份原始文件各自改过之后,怎么把两边的改动合到一起,而且不把对方改的东西覆盖掉。
KDiff3 的官方描述是"比较并合并两个或三个文本文件或文件夹"。三份的形态是原始文件加两边各自的修改版本,工具会把三边摊开,标出哪些行只有 A 改了、哪些行只有 B 改了、哪些行两边都动了。两边都动的那些行才会被抬成冲突,交给人工判断。数字上的差别很直接:两路对比要人逐行看过去,三向合并只需要看被标记出来的那几处。
它同时支持文件与文件夹两种粒度。文件夹模式下比较的是整棵目录树,子文件的差异状态会汇总到列表里,改过的、新增的、缺的都标出来。

逐字符,不只是逐行
官方对这项能力的描述里特意加了个感叹号:shows the differences line by line and character by character(!)。逐行对比是行业标配,逐字符不是。区别在长行的场景里很明显——一行几百个字符的配置项或压缩过的代码,逐行对比只会告诉你"这行变了",逐字符会把变的那几个字符单独标出来。
这项能力在审代码改动时实际价值不小。变量名从 userName 改成 user_name,逐行视角看到的是整行高亮,逐字符视角看到的是中间那一段。
冲突在编辑器里直接解决
比对工具常见的问题是"找到了差异,但改还得换个地方改"。KDiff3 内置了一个合并编辑器,冲突行会以标记形式出现在输出区,可以在原地选择保留哪一边、或者两边都留、或者手工改写。截图里底部那块 Output 面板就是干这个的。
更实用的是窗口底部那行状态提示:剩余未解决冲突数量,括号里还会注明其中有多少是纯空白差异。写合并的时候最怕的就是改到一半忘了还剩几处,这行数字把这件事变成了可核对的进度。

空白与注释可以被藏起来
缩进被编辑器自动改了、行尾多了一个空格、注释被格式化工具有规律地重排——这些差异在语义上没有意义,但会把真正需要看的改动淹没掉。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 的价值不在功能列表有多长,而在它把"三份文件怎么合"这件事从头到尾收在了一个窗口里:看差异、判冲突、改内容、核对剩余数量,一步都不用离开。