sublime text原生不支持文件对比,必须安装compare side-by-side插件;需严格输入全名安装,确保两文件已打开为独立标签页、编码统一(utf-8)、换行符一致(lf/crlf)、语法模式设为plain text,再用ctrl+alt+c或cmd+alt+c触发并排对比。

Sublime Text 原生不支持文件对比,别浪费时间找「Compare」菜单
你右键、查命令面板、翻菜单都找不到「Compare with…」——这不是你装错插件,是 Sublime 内核压根没内置 diff 引擎。所有可用的对比能力都来自第三方插件,硬要靠原生功能只会卡在“为什么没反应”上。
对比两个已打开的文件,用 Compare Side-By-Side 插件最稳
它专为“两个标签页已打开”场景设计,不依赖保存状态、不挑路径、不调外部命令,Windows/macOS/Linux 全平台开箱即用。
- 安装后无需重启:按
Ctrl+Shift+P→ 输入Package Control: Install Package→ 搜Compare Side-By-Side→ 回车 - 触发方式只有两种:
Ctrl+Alt+C(Windows/Linux)或Cmd+Alt+C(macOS),必须两个文件都已打开为独立标签页 - 右键菜单里找
Compare Side by Side,不是Compare with Tab(后者是旧版命名,新版已弃用) - 高亮逻辑基于行内容匹配,不是行号硬对齐,所以滚动时两侧会按语义同步,不是死板地 1→1 对应
乱码、整行标红、行号偏移?八成是编码或换行符惹的祸
UTF-8 with BOM 和纯 UTF-8 在首行就会全红;\r\n 和 \n 混用会让 diff 算法误判整块偏移——这不是插件 bug,是文本底层不一致导致的必然结果。
- 统一编码:右下角点击当前编码名 → 选
Convert to UTF-8→ 再Save(Save with Encoding → UTF-8会自动剥离 BOM) - 统一换行符:菜单
View → Line Endings → Unix (LF)或Windows (CRLF),两个文件必须一致 - 缩进干扰(空格 vs Tab)也会触发误标:对比前按
Ctrl+Shift+P→ 输入Set Syntax: Plain Text,切掉语法高亮和自动缩进
大文件卡顿、JSON/YAML 对比失效?别怪插件,先看模式和负载
Compare Side-By-Side 是纯内存比对,不走外部进程,但 >5MB 的文件仍可能响应迟滞;.json/.yml 本身没问题,问题常出在语法高亮插件拖慢渲染。
- 大文件必做:按
Ctrl+Shift+P→Set Syntax: Plain Text,禁用所有语法解析,能明显提速 - 它只做行级静态比对,不理解 JSON 结构、不忽略字段顺序、不识别注释语义——如果需要语义级 diff(比如忽略空格、重命名函数),得切到
git diff --word-diff或 VS Code - 它不保存、不合并、不跳转 Git 提交——只是个只读视图,关掉就清空,别指望它替代 GitGutter 或 GitSavvy











