Sublime Text 不支持真正的实时对比,因其无内置文件变更监听与自动刷新 diff 能力;可通过分栏+FileDiffs插件手动对比两文件或与磁盘版本比较,但属快照式而非增量更新。

Sublime Text 本身不提供“实时对比”(如文件修改时自动刷新 diff)功能,但可以通过分栏 + 手动触发 diff 或借助插件模拟接近实时的对比体验。关键在于:**它不是 Git 工具,没有内置监听变更并自动更新 diff 视图的能力。**
用 Split View + Diff 插件手动对比两个文件
这是最常用、最可控的方式,适合临时比对任意两个文件(比如修改前后的同一份代码、不同版本配置)。
- 打开两个待对比的文件 → 右键任一标签页 → 选择
Move to Group→ 拖到另一个分栏,或使用快捷键Ctrl+Shift+1/Ctrl+Shift+2切换分组 - 确保两个文件内容已保存(未保存的缓冲区可能被插件忽略)
- 安装插件:
Package Control: Install Package→ 搜索并安装Diffy或FileDiffs(推荐FileDiffs,轻量且支持行级高亮) - 选中左侧文件 → 右键 →
FileDiffs: Compare with Next Tab(或用快捷键Ctrl+Alt+D),右侧即显示差异块
对比当前文件与磁盘最新版本(类似“撤销前预览”)
适用于你正在编辑一个文件,想快速看到和磁盘上保存版本的差异——这最接近“实时”的需求场景。
- 无需分栏,直接在当前文件中操作
- 右键 →
FileDiffs: Compare with Saved(快捷键Ctrl+Alt+Shift+D) - 注意:该操作只读取磁盘上最后一次
Ctrl+S保存的内容,不会监控后台自动保存或备份文件 - 如果启用了
atomic_save(默认开启),则能避免因写入中断导致的脏读;反之若关闭,可能对比到不完整写入的文件
为什么不能真正“实时”?哪些坑容易踩
所谓“实时对比”,用户常期待的是:改一行,右边 diff 立刻变色。但 Sublime 的 API 不允许插件持续 hook 文件系统事件,也没有内置 diff engine 暴露增量更新接口。
-
FileDiffs和Diffy都是快照式对比:每次调用才读一次文件内容,不监听on_modified事件做自动重算(因为性能开销大,且易误触) - 不要依赖
Auto Save插件来“假装实时”:它只控制保存时机,不触发 diff 更新 - 如果用
GitGutter显示行内修改标记,那只是 Git 状态提示,不是文件间 diff,也不能替代两文件对比 - 分栏中若一个文件被外部程序修改(如 git checkout),Sublime 默认不会自动重载——需手动
Ctrl+R或启用hot_exit: false+remember_open_files: true配合重启
真正需要高频、自动化对比的场景,建议直接切到终端用 git diff 或开 VS Code(带原生 Compare Files 命令和保存即刷新的 diff 视图)。Sublime 的优势在于轻快和精准触发,而不是自动轮询。










