sublime text 原生不支持文件对比(diff),所有对比功能均依赖插件;主流选择是免费轻量的 diffy(仅支持已打开标签页比对)和功能更全但部分需付费的 sublimerge(支持未打开文件、文件夹及 git 集成)。

Sublime Text 里没有内置 diff 工具
直接说结论:Sublime Text 原生不支持文件对比(diff),Compare Files 这类功能根本不存在。你点菜单、查命令面板、翻设置,都找不到官方提供的差异高亮或并排比对能力——这不是你没找对位置,是它真没做。
所以所有“Sublime 对比文件”的教程,本质都是靠插件补足。最常用、最稳的是 Diffy 和 Sublimerge,前者免费开源轻量,后者功能全但部分高级特性需付费。
用 Diffy 快速对比两个打开的标签页
Diffy 是目前最主流的选择,安装后能直接比对当前已打开的两个文件标签,适合日常快速验证修改是否符合预期。
- 先装插件:
Package Control → Install Package → Diffy - 打开两个要对比的文件(必须是已打开的 tab,不能是未保存的临时缓冲区)
- 右键任一 tab 标题 → 选
Diffy: Compare with Active Tab,或用快捷键ctrl+alt+d(Windows/Linux)/cmd+alt+d(macOS) - 结果会新开一个只读视图,左侧原文件、右侧目标文件,差异行带颜色标记,支持折叠相同块
注意:Diffy 不支持比对磁盘上两个未打开的文件路径,也不支持三路合并。如果想比对 file1.py 和 file2.py 但它们都没打开,得先手动打开再操作。
Sublimerge 支持更复杂的比对场景
如果你常需要比对未打开的文件、目录级差异、甚至合并冲突,Sublimerge 更合适,但它把核心功能做了分层:
- 基础 diff(文件/文件夹比对)免费;
Merge(交互式三路合并)和Git Integration需购买 license - 比对未打开文件:右键侧边栏文件 →
Sublimerge: Compare With...→ 选另一个文件 - 比对整个文件夹:右键文件夹 →
Sublimerge: Compare Folders,会列出所有差异文件,点击可跳转比对 - 性能提示:大文件(>5MB)或含大量空格/换行变化时,
Sublimerge渲染可能卡顿,建议关掉Ignore whitespace选项(在比对窗口右下角齿轮里)来提速
常见报错 Sublimerge: No files selected 多半是因为右键位置不对——必须在侧边栏的文件或文件夹上右键,不能在编辑区空白处或标签页上。
别指望 Sublime 做 Git diff 替代品
有人想用 Sublime 当 git diff 图形界面,这容易踩坑。Sublime 插件无法直接读取 Git 暂存区状态,Sublimerge 的 Git 集成只是调用命令行 git diff 后解析输出,稳定性依赖本地 Git 环境和配置。
- 如果
git不在系统 PATH,Sublimerge会报错Git not found,需在插件设置里手动填git_binary路径 -
Diffy完全不碰 Git,纯文件内容比对,所以它永远不知道你改的是暂存区还是工作区 - 真正需要频繁看 Git 差异,不如直接用 VS Code 或专用工具(如
meld、vscode-insiders),Sublime 在这个环节始终是“加戏型选手”
复杂点在于:diff 插件的行为高度依赖你当前打开什么、右键在哪、有没有保存文件。同一个操作,在不同上下文可能触发完全不同的逻辑,而错误提示又极其简陋——比如 No active view,实际意思是“你没选中任何可比对的视图”,不是插件坏了。










