Sublime Text 无原生代码版本对比能力,所有对比均为纯文本行级比对;Diffy插件支持磁盘文件离线对比,需绝对路径且文件已保存;Compare Side-By-Side仅支持已打开标签页并排高亮,不识别语义差异。

Sublime Text 本身不提供原生的代码版本对比能力,所有可用的“对比”都是纯文本行级比对,不理解语法、不识别 Git 状态、也不支持三路合并。想靠它做类似 VS Code 的“当前文件 vs 工作区”或“vs HEAD”这种语义化版本对比,行不通。
用 Diffy 插件对比两个磁盘文件(最稳的离线方式)
这是目前最可靠、兼容 Sublime Text 4 且无需额外配置的方法,适合核对备份、patch 或跨分支小文件。
- 确保两个文件都已保存到磁盘(未保存的 buffer 不参与对比)
- 右键侧边栏空白处 →
Diffy: Compare Files - 在弹出框中粘贴两个绝对路径,用空格分隔;Windows 路径含空格必须加英文双引号,例如:
"C:\proj\config.json" "D:\backup\config.json" - 乱码?先用
File → Reopen with Encoding手动指定编码再重试 - 静默失败?大概率路径不存在或拼写错误——建议先在终端执行
ls或dir验证
用 Compare Side-By-Side 插件并排看两个已打开标签页
适合快速校对修改前后的同一份代码,响应快、支持同步滚动,但只认“已打开的标签页”,不读磁盘实时状态。
- 安装后,两个文件必须是独立标签页(不能是同一标签页里上下拼接)
- 右键任一标签页 →
Compare Files,或快捷键Ctrl+Alt+C(Windows/Linux) - 差异高亮不区分语义:缩进多一个空格、注释换行、BOM 存在与否,都会被标为“不同”
- 不支持忽略空白符或大小写——如果要对比 Go 标识符,记得提前统一格式
- 关闭对比视图后,原始标签页保留,但不会自动恢复分组布局,需手动拖回
别碰内置 Text: Diff 命令(容易误判)
这个命令不是为文件对比设计的,而是为选中文本片段服务的。强行用来比两个文件,极易出错。
- 操作路径:全选第一个文件 → 复制 → 切到第二个文件 → 全选 → 右键
Text → Diff - 问题在于:它把两段文本拼成一个长串再按行切分,一旦两文件行数不等或有空行偏移,对齐全乱
- 不支持跨文件路径输入,无法验证来源,也无法复现
- 结果是只读快照,且无上下文行(no context lines),删了哪行、加了哪行全靠猜
- 真正需要快速扫相同字符串(比如确认某 API 路径是否一致),用
Ctrl+Shift+F+Where填两个绝对路径更准
真正卡住人的地方从来不是“怎么打开对比窗口”,而是对比结果里哪些红块该信、哪些该忽略。Diffy 和 Compare Side-By-Side 都不会告诉你“这行只是换了变量名,逻辑没变”——它们只回答“字面是否一样”。如果你常要处理语义等价性判断,得切到 git diff --word-diff 或换工具。

















