sublime text 原生不支持文件对比,唯一开箱即用的插件是 compare side-by-side;它跨平台零配置、支持未保存 buffer、纯文本行级比对,但需统一编码、缩进和换行符,否则整行标红。

Sublime Text 本身没有自带文件对比功能,所谓“神级排错功能”是误传——它不提供原生并排 diff、不识别 Git 变更、也不支持未保存文件的跨标签对比。真要快速比两个文件,必须装插件,且只有一款真正开箱即用:Compare Side-By-Side。
为什么 Compare Side-By-Side 是唯一靠谱选择
它不调外部命令(比如 diff 或 vimdiff),不依赖系统 PATH,Windows/macOS/Linux 全平台零配置;不强制保存,能直接对比未保存的 buffer;不读 Git 状态,纯文本行级匹配,.json、.yml、.env 全都能用。
其他常见方案的问题:
-
Diff插件:只能比同一标签页里选中的两段文本,不能跨文件 -
Diffy:要求两个文件都已保存,路径必须绝对,未保存的Untitled-1直接拒认 -
FileDiffs:默认输出类 git diff 的单列文本,要并排得手动拆视图,还常因编码不一致报空结果
安装必须输对名字,否则右键菜单不会出现
搜错名字就装到废弃分支,右键点不动、快捷键无效——这不是你操作错,是插件根本没装对。
- 在命令面板按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS) - 输入
Package Control: Install Package,等列表完全加载完 - **严格输入**:
Compare Side-By-Side(带空格 + 连字符,末尾无s) - 别输
CompareSideBySide、Compare Side by Side或漏掉连字符
装完无需重启,但右键菜单只在「已打开的独立标签页」上生效——不是侧边栏、不是编辑区空白处、也不是未保存的 Untitled-1。
对比前必须统一三件事,否则整行标红
这个插件不做任何自动归一化,快是优点,也是误判根源。90% 的“明明一样却全红”都卡在这三点:
- 编码不一致:一边是
UTF-8 with BOM,另一边是纯UTF-8→ 右下角点编码名 →Reopen with Encoding→ 选UTF-8(去掉 BOM)再保存 - 缩进混用:Tab 和空格共存 →
View → Indentation → Convert Indentation to Spaces - 换行符不同:
CRLFvsLF→ 右下角点Line Endings→ 统一选Convert to Unix (LF)
另外:View → Word Wrap 必须关闭,否则同步滚动失效、行号错位;大文件(>5000 行或含长 base64 块)建议先 Ctrl+Shift+P → Set Syntax: Plain Text 关闭语法高亮提速。
对比后怎么退出和还原布局
关闭任一窗格不会关掉原文件,但布局不会自动还原——这是最容易被忽略的操作断点。
- 想彻底退出对比、恢复单列布局:右键任一窗格 →
Reset View - 想保留并排但清空对比(比如换一对新文件):不要直接关标签页;应右键 →
Close Group或拖回原分组 - 快捷键
Ctrl+Alt+C(Win/Linux)或Cmd+Alt+C(macOS)失效?在命令面板搜Compare,看有没有Compare: Compare Files可手动执行
真正卡住人的从来不是怎么装插件,而是状态栏右下角那个不起眼的编码名、换行符标识和缩进设置——它们不点开就不会暴露,但会默默让整行变红。











