Sublime Text 不支持原生目录对比,需依赖插件或外部工具:Compare Folders 仅比对文件名与元数据;SideBarEnhancements 可调用 meld/WinMerge 实现内容级比对;DiffFiles 仅适用于单文件文本对比。

用 Compare Folders 插件做基础目录比对
这是 Sublime 上最接近“侧边栏文件夹对比”的插件,但注意:它只比对文件名和路径结构,不比较文件内容。
- 安装方式:通过 Package Control 搜索并安装
Compare Folders - 使用方法:右键侧边栏任一文件夹 → 选择
Compare Folder With…→ 再点击另一个文件夹 - 结果以新标签页展示:列出仅在左/右存在的文件、同名文件(标为
same或different),但different仅基于文件大小和修改时间判断,不是真实内容 diff - 常见误判:文件内容变了但大小/时间没更新 → 会被标记为
same;文件重命名后未删旧文件 → 出现冗余only in left条目
用 SideBarEnhancements + 外部 diff 工具(推荐内容级比对)
如果真要看到两个文件夹里哪些文件内容不同,得把比对任务交给专业工具,Sublime 只负责调起它们。
- 先装
SideBarEnhancements插件(增强右键菜单) - 再安装本地 diff 工具,比如:
meld(Linux/macOS)、WinMerge(Windows)、或 VS Code 自带的code --diff - 配置 Sublime 调用命令:在
Preferences → Package Settings → SideBarEnhancements → Settings中添加:{ "advanced": { "linux": { "compare_folders": ["meld", "$1", "$2"] }, "osx": { "compare_folders": ["open", "-a", "Meld", "$1", "$2"] }, "windows": { "compare_folders": ["C:\\Program Files\\WinMerge\\WinMergeU.exe", "/u", "$1", "$2"] } } }保存后,右键任意两个文件夹 →
Compare Directories即可唤起外部工具进行逐文件内容比对 - 注意路径中不能含空格或中文(某些老版本 WinMerge 会失败),建议用符号链接或临时移到简单路径下操作
DiffFiles 插件只能比单个文件,不支持目录
别被名字误导——DiffFiles 是用来比对当前打开的两个 tab 里的文本内容,和侧边栏、文件夹完全无关。它不会扫描目录结构,也无法触发文件夹右键菜单。如果你点了右键却找不到“compare folders”,大概率是装错了插件,或者没重启 Sublime。
- 验证是否生效:打开两个文件 →
Ctrl+Shift+P输入Diff Files: Diff→ 看是否弹出差异视图 - 它对大文件(>10MB)响应慢,且不保留比对历史,关掉 tab 就丢结果
为什么没有真正好用的纯 Sublime 目录比对插件?
根本限制在于 Sublime 的 API 不暴露完整的文件系统遍历和二进制读取能力,也不支持后台异步执行耗时的文件内容哈希计算。所有“看起来能比目录”的插件,要么只做浅层元数据对比,要么必须把工作卸载给外部进程。
- 想自动化比对 + 输出报告?得写 Python 脚本调用
filecmp.dircmp或diff命令,再用 Sublime 的subprocess调起 —— 这已超出插件范畴 - 多人协作中常忽略的一点:Git 仓库的
git status和git diff --no-index其实比任何 GUI 工具更可靠,尤其涉及符号链接、换行符、编码差异时










