Sublime Text 原生不支持文件对比,需依赖插件(如 FileDiffs)或调用外部 diff 工具(如 meld、WinMerge);FileDiffs 要求两文件均已保存且编码一致,ExternalDiff 需正确配置 diff_command 路径。

Sublime Text 自带没有文件对比功能
Sublime Text 原生不提供类似 VS Code 或 Beyond Compare 那样的双文件并排比对视图。你点右键、翻菜单、查命令面板,都找不到 Compare Files 或 Diff 这类选项——这不是你没找对路,是它真没集成。
常见错误现象:Package Control 搜索 “diff” 或 “compare” 后装了名字带 “Diff” 的插件,结果发现只是高亮当前文件里的重复行,根本不是两个文件对比。
- 真正能用的方案只有两类:靠插件扩展,或调外部 diff 工具
- 插件方案依赖 Python 3 环境(Sublime 4 默认用 Py3,Sublime 3 需确认插件是否兼容)
- 外部工具方案要求系统已安装
diff(macOS/Linux)或WinMerge/meld(Windows),且路径要能被 Sublime 调到
用 FileDiffs 插件快速对比两个打开的标签页
这是目前最轻量、最贴近“右键就比”的方案,支持 Sublime Text 3/4,维护活跃。
实操步骤:
- 通过
Package Control: Install Package安装FileDiffs - 同时打开两个待比对的文件(必须是已保存的文件,临时未保存的 untitled 标签不支持)
- 在任一文件标签页上右键 → 选
FileDiffs: Compare with Current,再点另一个文件名 - 结果以新标签页形式弹出,显示行号、增删标记(
+/-)、语法高亮差异
注意坑点:FileDiffs 不支持未保存文件对比;如果两个文件编码不同(比如一个 UTF-8 BOM,一个纯 UTF-8),可能误报大量差异,建议先统一用 File → Reopen with Encoding → UTF-8。
用 ExternalDiff 调系统级 diff 工具做更可靠比对
当你要比的是二进制文件、大日志、或需要合并逻辑时,外部 diff 工具(如 meld、WinMerge、diff 命令)更稳,也支持三路合并。
配置关键点:
- macOS/Linux:确保终端能直接运行
diff,或装好meld并执行which meld记下路径 - Windows:推荐装
WinMerge,安装后默认会把WinMergeU.exe加入 PATH;若没加,需手动填绝对路径到插件配置里 - 安装
ExternalDiff插件后,在Preferences → Package Settings → ExternalDiff → Settings中修改"diff_command"字段
示例(macOS 调 meld):
"diff_command": ["meld", "${file1}", "${file2}"]变量 ${file1} 和 ${file2} 由插件自动替换为当前选中的两个文件绝对路径。
别指望侧边栏右键直接比对,得先激活两个文件
很多人卡在这步:在侧边栏右键一个文件,菜单里根本没有 “Compare with…” 选项——因为 Sublime 的上下文菜单是按“当前焦点”判断的,不是按“鼠标悬停”。
正确做法:
- 先点击打开第一个文件,让它成为当前活动标签页
- 再按住
Ctrl(Windows/Linux)或Cmd(macOS)点击侧边栏第二个文件,这样它会在新标签页打开,但焦点还在第一个上 - 这时右键第一个文件的标签页,才能看到
FileDiffs相关菜单项
这个交互逻辑和 VS Code 不同,容易下意识以为“右键文件就能比”,实际得先控制焦点归属。文件一多,切错标签页就会触发不了对比命令。










