diffy是sublime text 4(build 4143+)中唯一开箱即用、不依赖外部工具、支持内联高亮且热加载的文件对比插件,其他方案或误判严重、或已停更、或需付费,无法满足行级差异+实时响应+零编码干扰的核心需求。

Diffy 是目前 Sublime Text 4(build 4143+)中唯一开箱即用、不依赖外部工具、支持内联高亮且热加载的文件对比插件。其他所谓“对比”方案,要么是纯文本拼接误判(Text: Diff),要么只做路径比对(SideBarEnhancements),要么已停更或需付费(Sublimerge)。别被“Compare Files”这类模糊菜单名带偏——真正能快速定位 Bug 的,只有行级差异+实时响应+零编码干扰的组合。
为什么 Text: Diff 不能用来比两个文件
这个命令根本不是为文件设计的,它只处理当前选中的两段文本块,强行用于文件对比会引发三类致命问题:
- 它把两文件内容拼成一个长字符串再按行切分,一旦行数不等或空行错位,对齐全乱,删了哪行、加了哪行完全无法判断
- 结果是只读快照,没有上下文行(no context lines),看不到变更前后的代码逻辑衔接
- 不验证来源路径,对比完你甚至不知道左边是 A 分支还是 B 分支的 config.json
真要扫相同字符串(比如确认某 API 路径是否一致),用 Ctrl+Shift+F + Where 填两个绝对路径,比它准十倍。
Diffy 对比两个磁盘文件的实操要点
这是最稳的离线方式,适合核对备份、patch 或跨分支小文件,但极易因路径或编码栽跟头:
- 两个文件必须已保存到磁盘,未保存的 buffer 不参与对比;状态栏显示完整路径(如
/home/user/app/main.py)才算数 - 右键侧边栏空白处 →
Diffy: Compare Files,粘贴两个绝对路径,用空格分隔;Windows 含空格路径必须加英文双引号:"C:\My Project\config.json" "D:\backup\config.json" - 乱码?先点右下角编码名 →
Reopen with Encoding→ 强制设为UTF-8,再重试 - 静默失败?不是插件坏了,大概率路径不存在或拼写错误——建议先在终端执行
ls或dir验证
Compare Side-By-Side 并排看已打开文件时的坑
它不调外部命令、响应快、支持同步滚动,但对环境极其敏感:
- 必须是两个独立标签页,不能是同一文件分屏打开;也不能是
Untitled-1这类无路径缓冲区 - 一边是
UTF-8 with BOM,另一边是纯UTF-8?第一行必全红 → 先统一编码再保存 - 缩进混用 Tab 和空格?每行都标差异 → 对比前运行
Convert Indentation to Spaces - 开了
Word Wrap?物理行号错位,同步滚动失效 →View → Word Wrap必须关掉 - 大文件卡顿?切到
Plain Text语法模式(Ctrl+Shift+P→Set Syntax: Plain Text)可显著提速
真正卡住人的从来不是怎么打开对比窗口
而是对比结果里哪些红块该信、哪些该忽略。比如一行只多了一个空格、注释换行、BOM 存在与否,Diffy 和 Compare Side-By-Side 都会标为“不同”——它们不做语义解析,也不支持忽略空白或大小写。如果你需要函数重命名、结构体字段顺序调整这类逻辑差异识别,得切到 git diff --word-diff 或 VS Code。Sublime 的角色很明确:快速校验字节级一致性,不是替代 Git 或 IDE 的语义分析层。











