原生 Sublime Text 不支持文件对比,需安装 SideBarEnhancements 和 SublimeDiff 插件实现右键快速 Diff;后者以内联高亮显示差异,要求文件已保存、编码与换行符一致,且不处理未保存缓冲区或大文件卡顿问题。

Sublime Text 没有内置 Diff 功能
直接说结论:原生 Sublime Text 不支持文件对比,Ctrl+D 或 Cmd+D 是多光标选择,不是 Diff;菜单里也找不到 “Compare Files” 选项。想用它做差异比对,必须装插件——这是最常被误以为“自带功能”的坑。
用 SideBarEnhancements + SublimeDiff 实现快速对比
推荐组合方案:先装 SideBarEnhancements(管理右键菜单),再装轻量级 SublimeDiff(专注文本行级差异)。两者不冲突,且都持续维护。
-
SideBarEnhancements安装后,右键任意两个已打开的标签页或侧边栏文件,会出现Diff with Tab或Diff with File… -
SublimeDiff默认把差异渲染成内联高亮(绿色/红色背景),不新开窗口,也不修改原文件 - 如果右键没出现 Diff 选项,检查是否两个文件都已保存——
SublimeDiff不处理未保存的临时缓冲区(untitled) - 对比大文件(>10MB)会卡顿,因为它是纯 Python 实现,没调用系统
diff命令
为什么不用 GitGutter 或 SublimeMerge 替代?
这两个常见方案容易选错场景:
-
GitGutter只显示当前文件 vs Git HEAD 的差异,不能任选两个本地文件对比,参数git_binary配错还会报Git not found -
SublimeMerge是独立 App,虽能打开任意两文件,但需手动拖入、不集成在编辑器内;且免费版带水印,商用需订阅 - 真正需要“临时比对配置文件、日志片段、API 响应体”时,
SublimeDiff的快捷键Ctrl+Shift+D(Windows/Linux)或Cmd+Shift+D(macOS)才是最快路径
对比结果里中文乱码或空行错位怎么办
本质是编码或换行符不一致导致的解析偏差,不是插件 bug:
- 确保两个文件编码一致:右下角状态栏点开编码名(如
UTF-8),统一设为UTF-8 with BOM或都去掉 BOM - 检查换行符:状态栏显示
Unix (LF)/Windows (CRLF),用View → Line Endings → Convert to Unix统一 -
SublimeDiff不自动 trim 空格,行尾空格不同也会标为差异——开启draw_white_space设置可肉眼识别
插件本身不处理字符宽度、制表符展开逻辑,所以 .md 或缩进敏感的 YAML 文件对比前,最好先用 Convert Indent to Spaces 对齐格式。

















