Sublime Text原生不支持文件对比,必须安装Compare Side-By-Side插件;需严格输入全名安装,确保两文件为已打开的独立标签页,并统一编码、缩进和换行符格式。

Sublime Text 原生不支持文件比对,所有可用的差异高亮、并排显示、同步滚动能力都依赖插件——不是你没装对,而是它压根没这个功能。
Compare Side-By-Side 插件为什么是首选
它是目前 Sublime Text(ST4 build 4143+)中唯一能稳定处理未保存缓冲区(unsaved buffer)的并排对比方案,不调外部命令、不强制保存、不崩溃。日常改 .env、临时调 config.yml、比对刚复制粘贴的 JSON 片段,全靠它立刻响应。
但前提是:两个文件必须是已打开的独立标签页,不能是同一文件分屏,也不能是侧边栏右键点出来的“未激活”状态。
- 安装时名字必须严丝合缝:
Compare Side-By-Side(带空格、带连字符、末尾有 S);搜CompareSideBySide或Compare Side by Side都会装错旧分支 - 装完不用重启,但右键菜单只在「焦点落在某个已打开的标签页」时才出现——先点一下标签页再右键
- 快捷键直接生效:
Ctrl+Alt+C(Win/Linux)或Cmd+Alt+C(macOS)
右键点了 Compare Side by Side 却全是红块?检查三个底层格式
Compare Side-By-Side 不做任何自动归一化,它比的是内存里加载的原始字节流。哪怕内容完全一样,只要格式不一致,就整行标红。
-
UTF-8 with BOMvsUTF-8:首行必然全红 → 右下角点编码名 →Reopen with Encoding→ 选UTF-8(去掉 BOM),再保存 - 缩进混用
Tab和Space:每行都被当差异 →Ctrl+Shift+P→ 输入Convert Indentation to Spaces - 换行符不统一:
CRLF(Windows)vsLF(Unix/macOS)→ 空行错位、注释偏移 → 右下角点Line Endings→Convert Line Endings to Unix (LF)
大文件卡死或 UI 冻结?别硬等渲染
超过 5000 行,或某行含超长 base64 / 压缩 JSON,Compare Side-By-Side 的纯 Python 实现会明显卡顿——这不是 bug,是合理限制。
- 先切纯文本模式:
Ctrl+Shift+P→ 输入Set Syntax: Plain Text(关掉语法高亮和折叠) - 仍卡顿?改用终端:
diff -u file1.txt file2.txt | less,结果粘进新标签页看 - 如果只查某字符串是否一致(比如 API 路径、函数名),用
Ctrl+Shift+F全局搜索更准:Where 栏填两个绝对路径(逗号分隔),勾选Match Case和Whole Word
对比完怎么恢复单列布局?别手动拖来拖去
关闭任一窗格不会自动还原原始布局,也不会关掉原文件——这是设计,不是 bug。
- 右键任意窗格空白处 →
Reset View,立刻回到单列模式 - 想保留并排但清空对比?别直接关标签页;右键 →
Close Group或把窗格拖回原分组 - 别碰原生
Text → Diff:它把两段文本拼成一个长串再切行,行数不等就全乱,且无上下文行,删了哪行加了哪行根本没法判断
真正容易被忽略的点藏在状态栏右下角:BOM、换行符、缩进类型——它们不报错,也不提示,但会让整个对比结果失去可信度。每次比之前,先点开那几个小标识确认一遍,比什么都快。











