sublime text原生不支持文件对比,必须依赖插件;当前稳定可用的仅有compare side-by-side、filediffs、diffy和sublimediff四类,均要求文件已保存且编码、换行符、缩进统一,否则易产生误判。

Sublime Text 原生不支持文件内容比较,所有可用的对比能力都依赖插件;目前稳定、兼容 Sublime Text 4(2026 年主流版本)且真正能用的只有 Compare Side-By-Side、FileDiffs、Diffy 和 SublimeDiff 这四类,其他名字近似的包(如 Compare Folders、Diff 无 y)基本失效或功能残缺。
Compare Side-By-Side:唯一开箱即用的并排高亮方案
它不调外部命令、不强制保存、不崩溃,适合快速校对已打开的两个文件。但只认“独立标签页”,不支持侧边栏直选或未保存缓冲区。
- 安装必须输全名:
Compare Side-By-Side(带连字符,Side不可漏) - 对比前确保两个文件都以单独标签页打开,不能是同一分组里的子视图
- 右键任一标签页 →
Compare Side by Side,或快捷键Ctrl+Alt+C(Windows/Linux)、Cmd+Alt+C(macOS) - 差异靠浅灰背景色区分,不显示 +/- 符号;同步滚动默认开启,但关闭后不会自动还原布局
- 编码或缩进不一致会直接误判:UTF-8 with BOM vs UTF-8、Tab vs 4 spaces 都会导致整行标红
FileDiffs:最灵活的右键菜单派,但默认不并排
它支持多种比对方式(当前文件 vs 剪贴板、vs 其他文件),输出为类似 git diff 的文本格式,要并排得手动拆分视图。
- 安装后右键菜单只在“已保存、路径不同、编码一致”的标签页上出现
- 默认行为是生成新标签页显示差异块,不是左右窗格——需先按
Ctrl+K, Ctrl+2拆分视图,再拖拽 diff 标签到右侧 - 不处理未保存文件(
Untitled标签页直接忽略) - 乱码主因是编码/换行符不一致:一个
UTF-8 with BOM,一个GBK,或一个CRLF、一个LF,都会导致大量假差异 - 想绑定快捷键?在用户键绑定里加:
{"keys": ["ctrl+shift+d"], "command": "file_diff_menu"}
Diffy:唯一支持磁盘文件直比的插件,但结果只读
它能绕过“必须先打开文件”这一步,直接从侧边栏或命令面板选两个已保存的磁盘路径做对比,适合核对备份或 patch 文件。
- 调用路径:命令面板输入
Diffy: Compare with File(注意有省略号),再选第二个文件 - 对比窗口左侧固定为当前激活文件,右侧为你选的文件;顺序反了就重来
- 不识别 Git 状态,也不支持三路合并;结果是只读快照,改不了内容
- 大文件(>5MB)容易卡死或静默失败;路径含空格时 Windows 必须加英文双引号,如:
"C:\my proj\config.json" - 如果弹窗空白或无响应,先在终端执行
dir或ls验证路径是否存在
SublimeDiff:轻量内联高亮,适合小范围快速扫
它把差异直接渲染在原文件视图里(绿色/红色背景),不新开窗口,适合临时确认某段配置是否一致。
- 右键菜单项叫
Diff with Tab或Diff with File…,前提是两个文件都已保存且状态栏显示完整路径 - 不处理未保存缓冲区;大文件(>10MB)会明显卡顿,因为纯 Python 实现
- 行尾空格不同也会标为差异——开启
draw_white_space设置可肉眼识别 - 中文乱码?统一用
File → Reopen with Encoding → UTF-8,再Convert Line Endings → Unix (LF) - 别指望它忽略空白或大小写;对比 Go/Rust 标识符前,务必手动统一格式
真正容易被忽略的点是:所有插件都不做编码转换、不猜换行符、不 trim 空格,它们比的是 Sublime 当前加载进内存的文本流——你看到的“差异”,往往不是内容变了,而是加载方式不一致。先统一编码和换行符,再对比,省下的调试时间远超装插件花的功夫。











