sublime text 无内置文件对比功能,需依赖插件如diffy;其正确使用流程为:激活首文件后调用“diffy: compare with file...”选择第二文件;但存在三路对比缺失、不支持git状态识别、结果只读及大文件卡顿等限制。

Sublime Text 里没有内置文件对比功能
Sublime Text 本身不提供原生的双文件差异比对(diff)视图,这点和 VS Code、JetBrains 系列不同。你点右键、看菜单、翻设置,都找不到 “Compare Files” 这类选项——不是你没找到,是它真没有。
要实现对比,必须依赖插件。最常用、维护最久的是 Diffy,其次是轻量级的 Sublime-Text-Diff。别装错名字,比如搜 “sublime diff plugin” 时容易误装成已停更的 Diff(注意末尾没 y),它在 Sublime Text 4 下基本不可用。
用 Diffy 插件做两文件对比的正确流程
装完 Diffy 后,不能直接按 Ctrl+P 搜 “diff” 就开比对——它默认不绑定快捷键,也不出现在右键菜单,得手动触发:
- 打开第一个文件,确保它在当前激活标签页
-
Ctrl+Shift+P调出命令面板,输入Diffy: Compare with File...(注意结尾有省略号) - 在弹出的文件选择框中,选中第二个待对比的文件(支持跨文件夹)
- 对比窗口会以新标签页形式打开,左侧为当前文件,右侧为被选文件,差异行高亮,支持逐行 Accept/Reject(但仅限文本,不支持合并)
常见错误:选反了主从顺序——Diffy 总是把“当前激活文件”当左栏,“你选的文件”当右栏。如果发现箭头方向或加减号逻辑反了,换过来重试就行。
Diffy 的三个关键限制你得知道
它不是 Git 工具,也不是 IDE 级 diff,很多你以为能干的事它干不了:
- 不支持三路对比(比如 merge conflict 场景下的 base/head/theirs)
- 不解析 Git 索引状态,
git status里标为 modified 的文件,它不会自动识别变更来源 - 对比结果是只读快照,改不了内容;想同步修改,得手动切回原文件编辑,再重新对比
- 大文件(>5MB)可能卡死或直接无响应,建议先确认文件大小再拉对比
如果你常要对比 Git 未提交变更,不如直接用终端:git diff --no-index file1.js file2.js,然后把输出粘进 Sublime——反而更快更准。
替代方案:不用插件也能临时看差异
真不想装插件,或者就比一次两个小配置文件,可以绕道:
- 把两个文件内容分别复制到两个新标签页,全选 →
Ctrl+J(Join Lines)删空行 →Ctrl+Shift+P输入Sort Lines排序 → 手动滚动对齐看差异(适合结构化文本,如 JSON/YAML) - 用系统级工具:Windows 上用
fc /n file1.txt file2.txt,macOS/Linux 用diff -u file1.txt file2.txt,结果贴进 Sublime 查看 - 浏览器里打开
https://www.textcompare.org/这类在线工具,粘过去比——前提是文件不含敏感信息
这些法子都不是长久之计,但胜在零配置、不依赖插件更新节奏。尤其当你只是临时核对一份 .env 或 nginx.conf,比等插件下载安装还快。
Diffy 的配置项很少,但 ignore_whitespace 默认关着,如果两个文件缩进风格不一致(比如一个用 2 空格一个用 4),差异会刷满屏——记得去 Preferences → Package Settings → Diffy → Settings 里把它设为 true。











