sublime text原生不支持文件对比,需安装compare side-by-side插件;必须严格输入插件名“compare side-by-side”(带连字符、空格、末尾无s),且仅支持已保存、路径完整、编码与换行符一致的独立标签页文件对比。

Sublime Text 原生不支持文件对比,所有可用的差异高亮都依赖插件;装错插件、未保存文件、编码不一致,这三件事占了 90% 的“对比失败”原因。
Compare Side-By-Side 插件必须严格按名字安装
它不是搜“compare”就点安装,名字必须严丝合缝:Compare Side-By-Side(带空格 + 连字符,末尾无 s)。搜 CompareSideBySide、Compare Side By Side 或漏掉连字符,都会装到废弃分支或旧版,右键菜单压根不出现。
安装前先确认 Package Control 活着:按 Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS),输 Package Control: Install Package 回车——如果报错或没反应,说明它坏了,得重装。
装插件时等列表完全加载完再输名字,手快输一半就匹配容易选错。装完不用重启,但右键菜单只出现在「已打开的文件标签页」上,不是侧边栏、不是编辑区空白处、更不是未保存的 Untitled-1。
右键点了 Compare Side by Side 却没反应?检查这两个前提
它只认两个前提:两个文件都已作为独立标签页打开,且至少有一个被显式激活过(点一下标签页即可)。
- 两个标签页是同一文件的分屏副本(比如拖拽一个
index.js标签到右边),它拒绝对比——必须是不同路径的文件 - 文件状态栏显示的是
untitled或Untitled-1,哪怕你刚Ctrl+S过,也得再点一次保存确认路径落地 - 快捷键
Ctrl+Alt+C(Win/Linux)或Cmd+Alt+C(macOS)失效?检查是否被其他插件劫持:在命令面板搜Compare,看有没有Compare: Compare Files可手动执行
为什么明明一样却整行标红?编码和格式陷阱最常被忽略
这个插件不做自动转换,也不忽略空白——快是优点,也是误判根源:
- 一边是
UTF-8 with BOM,另一边是纯UTF-8?第一行必全红 → 先点右下角编码名 →Reopen with Encoding→UTF-8,再保存 - 缩进混用
Tab和空格?每行都会标为差异 → 对比前按Ctrl+Shift+P→ 输入Convert Indentation to Spaces - 开了
Word Wrap?物理行号错位,同步滚动失效 →View→Word Wrap必须关掉 - 大文件(>5000 行或含长
base64块)会卡顿 → 先切到Plain Text语法模式(Ctrl+Shift+P→Set Syntax: Plain Text)
它不能做什么,得提前知道
这个插件只解决「两个已打开文件的静态文本差异」,不涉及任何版本控制语义:
- 不会告诉你这行是不是从
HEAD改的 - 不会合并、不会跳转到 Git 变更位置
- 不支持三路对比(
base/ours/theirs) - 不提供复制差异块到另一侧的按钮(不像
Diffy的 → 箭头),所有编辑必须切回原文件手动操作
真正卡住人的不是安装步骤,而是对比结果里那些“明明一样却标红”的空行、BOM、缩进。











