compare side-by-side是首选并排对比方案,因其不依赖外部命令、不强制保存、不读取git状态,仅需两个已打开的独立标签页,右键或快捷键即可触发;而filediffs需文件已保存、路径不同、编码统一,否则静默失败。

Sublime Text 原生不支持文件对比,装错插件、没保存文件、编码不一致这三件事,占了 90% 的“对比失败”原因。直接上 Compare Side-by-Side 是最省心的并排方案;若要兼容 Git 差异语义或比对未保存内容,FileDiffs 更合适——但必须满足硬性前提。
为什么 Compare Side-by-Side 是首选并排对比方案
它不依赖外部命令(比如 git 或 diff),不强制保存,也不读取 Git 状态,只要两个文件已打开为独立标签页,右键或快捷键就能触发。高亮逻辑基于行对齐+内容匹配,.json、.yml、.env 全都能用。
- 安装时必须严格输入
Compare Side-by-Side(带连字符、小写by,不能是Compare Side-By-Side或CompareSideBySide) - 触发方式有三种:右键标签页选
Compare Side by Side;或快捷键Ctrl+Alt+C(Windows/Linux)、Cmd+Alt+C(macOS);或命令面板搜Compare Side-by-Side: Compare - 它不支持三路对比、不跳转 Git 变更、不合并,纯静态文本比对 —— 这不是缺陷,是设计取舍
FileDiffs 为什么总“没反应”
FileDiffs 插件只对已保存、路径不同、编码统一的两个文件生效。一旦不满足,它就静默失败:右键菜单不出现、点选后无输出、甚至对比结果全是乱码。
- 两个标签页状态栏必须显示完整路径(如
/project/src/config.js),不能是Untitled-1 - 不能是同一文件的两个分屏标签(比如左右都是
index.html) - 编码必须统一:逐个打开文件 → 右下角点编码名 → 选
Reopen with Encoding → UTF-8;再点换行符标识 → 选Convert Line Endings → Unix (LF) - 默认输出是单页 diff 文本,想并排看需先手动拆栏:
Ctrl+K, Ctrl+2(Win/Linux)或Cmd+K, Cmd+2(macOS),再在左右栏分别打开目标文件,右键左栏选FileDiffs: Compare Current File with Other File
常见误判根源:编码、缩进、换行符全得手动对齐
这两个插件都不做后台转换,看到什么就比什么。UTF-8 with BOM vs UTF-8、空格缩进 vs Tab 缩进、\r\n vs \n,都会导致整行标红,误判为“完全不同”。
- 对比前务必统一编码:右下角点击编码名 → 选
Convert to UTF-8→ 再保存 - 禁用语法高亮干扰:按
Ctrl+Shift+P→ 输入Set Syntax: Plain Text,尤其对大文件(>10MB)可避免卡顿 - 缩进混用时,可临时用正则替换:
^\t+替换为 4 个空格,或^ {4}替换为\t,保持一致后再比
别指望它们替代 Git 工具链
Compare Side-by-Side 和 FileDiffs 都只解决“当前打开的两个文本缓冲区之间有什么不同”,不涉及版本控制语义。你不会知道某行是不是从 HEAD 改的,也不会自动跳转到 Git 标记的变更位置。
如果需要“当前文件 vs 上次提交”或“工作区 vs 暂存区”,得换工具:GitGutter 在行边显示增删标记,GitSavvy 提供完整的命令行级 Git 操作界面——这些才是和 Git 协同工作的正确姿势。











