Sublime Text 原生不支持双文件比较,需安装 Sublime-Text-Diff-Tool 插件实现右键“Diff with other view”功能,纯 Python 实现、适配 ST4、支持颜色高亮与块折叠;GitGutter 配合 git diff --no-index 可临时替代,但要求文件已保存且路径有效;Compare Side-By-Side 等插件仅并排显示,无实际差异计算。

Sublime Text 自带的 diff 命令不支持双文件比较,必须靠插件
Sublime Text 原生没有「选中两个标签页 → 右键 → Compare Files」这类功能。直接按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)调出命令面板,搜 diff,只会看到 Diff: Toggle Diff View——它只对当前文件和上次保存版本做差异,不是你想要的「两份独立文件对比」。
推荐安装 Sublime-Text-Diff-Tool 插件(轻量、无依赖、支持右键菜单)
这是目前最干净的方案:不拉取外部 diff 工具(比如 meld 或 vimdiff),纯 Python 实现,装完就能用,且适配 Sublime Text 4。
- 打开命令面板(
Ctrl+Shift+P),输入Package Control: Install Package回车 - 搜索
Sublime-Text-Diff-Tool,回车安装 - 重启 Sublime(部分版本需重启才加载右键菜单)
- 打开两个要比较的文件 → 右键任意一个标签页 → 选择
Diff with other view
结果会以新标签页形式打开,左侧为 A 文件,右侧为 B 文件,增删行用颜色高亮,支持折叠相同块。
如果已装 Git,也可以用 GitGutter + 手动触发临时 diff
这不是正统双文件 diff,但适合快速验证「这个文件和另一个本地文件内容是否一致」:
- 确保已安装
GitGutter(它本身不提供双文件 diff,但能调用 Git 的git diff --no-index) - 把两个文件都保存到磁盘(不能是未保存的临时缓冲区)
- 在命令面板中运行
GitGutter: Diff Current File Against... - 在弹出的文件选择器中定位并选中另一个文件
注意:git diff --no-index 要求两个路径都存在且非空,否则报错 fatal: Not a valid object name HEAD;另外,它默认忽略空白符变化,如需比对空格/制表符差异,得手动改插件配置或换用上面的 Sublime-Text-Diff-Tool。
别踩坑:不要试图用 Compare Side-By-Side 插件替代 diff
有些用户搜到 Compare Side-By-Side,以为它能高亮差异——其实它只是把两个文件并排显示,**完全不计算 diff**,连行号对齐都不保证。你看到的“不同”,全靠肉眼扫,尤其遇到插入/删除整段时极易漏判。
真正的 diff 需要算法识别 LCS(最长公共子序列),而 Sublime 原生视图层不提供该能力。所以只要没看到绿色(新增)、红色(删除)、灰色(修改)标记,就不是真 diff。
复杂点在于:Sublime 的插件 API 对跨视图文本操作限制较多,很多老插件在 ST4 上失效。现在能稳定跑通双文件 diff 的,基本只剩 Sublime-Text-Diff-Tool 和极少数基于 git diff --no-index 封装的变体。其他名字带 “diff” 的插件,建议先看 GitHub 最近一次 commit 时间和 issue 是否有 ST4 兼容反馈。










