sublime text 原生不支持文件对比功能,需安装 sublime-text-compare 插件实现并排高亮、跳转差异等;使用前须统一编码(utf-8)、换行符及去除 bom,大文件建议改用命令行或专用 diff 工具。

Sublime Text 自带的 diff 功能根本不能直接用
Sublime Text 原生不提供文件对比(diff)界面,view_file 或右键菜单里找不到「Compare with…」这类选项。你看到的所谓“对比”,其实是靠第三方插件补上的能力,不是内置功能。想快速定位两个版本代码差异,必须装插件,而且得选对——很多用户装了 Diffy 或 Ediff 后发现不支持并排高亮、无法跳转差异块,就是踩了插件兼容性或配置缺失的坑。
推荐用 Sublime-Text-Compare 插件 + 快捷键触发
这是目前最轻量、最稳定、和 Sublime 原生 UI 融合最好的方案,支持双文件并排显示、行级高亮、点击跳转、忽略空格差异等核心需求。
- 安装方式:通过
Package Control → Install Package → Sublime-Text-Compare - 对比两个已打开的标签页:
Ctrl+Shift+C(Windows/Linux)或Cmd+Shift+C(macOS) - 对比当前文件与磁盘上另一个文件:
Ctrl+Alt+C→ 弹出文件选择器,选目标路径即可 - 默认不启用「忽略空白字符」,如需开启,在插件设置里加一行:
"ignore_whitespace": true
对比时出现乱码、中文错位或行号偏移?检查编码和换行符
Sublime 默认按文件自身编码读取内容,但两个文件编码不一致(比如一个 UTF-8 with BOM,另一个是 GBK),或换行符混用(\r\n vs \n),会导致 diff 算法误判差异位置,甚至整块偏移。
- 先统一编码:右下角状态栏点编码名 → 选
Convert to UTF-8(不要只选Reopen with Encoding) - 再统一换行符:菜单
View → Line Endings → Unix (LF)或Windows (CRLF),两个文件保持一致 - 如果某文件含 BOM,
Sublime-Text-Compare可能把它算作首行差异,手动删掉 BOM 更干净(用File → Save with Encoding → UTF-8会自动剥离)
大文件(>10MB)对比卡死?别硬扛,换策略
Sublime-Text-Compare 是纯 Python 实现,依赖 Sublime 的 API 渲染视图,一旦文件超过几万行或含超长行(比如压缩 JS、base64 字符串),UI 就会明显卡顿,甚至无响应。这不是插件 bug,是编辑器架构限制。
- 优先用命令行工具预筛差异:
diff -u file1.py file2.py | head -n 50快速看头尾变化 - 或者导出差异为 patch:
git diff --no-index file1.py file2.py > diff.patch,再用 Sublime 打开 patch 文件阅读 - 真要图形化对比大文件,不如切到
VS Code(自带Compare Files命令)或meld这类原生 diff 工具
真正影响效率的,往往不是怎么对比,而是没提前清理编码、换行符、BOM 这些隐形干扰项——它们会让 diff 结果看起来“全错了”。











