filediffs 仅对比内存中两个已保存文件的原始字节流,不支持 git 历史查询;需确保文件已保存、路径明确、编码与换行符统一,并手动分栏才能实现并排查看。

FileDiffs 不能查 Git 历史,别用它看“改过几次”
想通过 FileDiffs 查“这个文件在 Git 里被提交过哪些版本”,注定失败。它不读 .git 目录、不调用 git log、也不解析 commit ID —— 它只比内存里两个已加载文本的字节流。你右键看到的“Compare with Current”,背后没有时间戳、作者、分支信息,只有红绿块。真要追溯修改历史,请装 Git History 插件,而不是反复重装 FileDiffs。
对比前必须确保两个文件都已保存且路径明确
FileDiffs 对“未保存”零容忍:标签页显示 Untitled-1 或右下角没路径,右键菜单里连 FileDiffs 子项都不会出现。常见卡点包括:
- 两个文件都得是磁盘上真实存在的路径(如
/project/src/api.js),不能是同一文件分屏打开 - 侧边栏右键无效——必须先点击任一标签页,让它成为活动视图,再右键
- 如果菜单里只有灰色不可点的
Diff with saved,说明当前文件还没存盘,按Ctrl+S再试
编码和换行符不一致会导致整段误标差异
FileDiffs 不做任何归一化处理。一个文件是 UTF-8 with BOM,另一个是 GBK;一个用 CRLF,另一个用 LF —— 结果就是大量“无意义”的红色删除块和绿色新增块。解决方法很直接:
- 分别打开两个文件,右下角点击编码名 →
Reopen with Encoding→ 统一选UTF-8 - 再点右下角
Line Endings→Convert Line Endings→ 全部转成Unix (LF) - 缩进敏感格式(如
YAML、JSON)建议额外执行Convert Indent to Spaces - 仍乱码?可在
Preferences → Package Settings → FileDiffs → Settings中加配置:"diff_tool": "git"(需系统已装 Git 并加入 PATH)
并排查看需手动分栏,FileDiffs 默认不提供双栏界面
FileDiffs 默认把差异输出到单个新标签页,纯文本 diff 格式(类似 git diff 输出),不是左右分屏。要并排看,必须自己动手:
- 先执行
View → Layout → Columns: Two - 把两个待比文件分别拖进左、右面板
- 再在任一视图右键 →
FileDiffs: Compare with Current - 结果仍会在新标签页弹出,但你能同时盯着原始文件结构 + 左右对照逻辑 —— 这才是实际排查修改时最常用的组合操作
真正容易被忽略的,是对比结果里那些“看似不同实则无关”的差异:BOM、行尾空格、缩进空格/Tab 混用、注释换行位置……它们会淹没真正的逻辑变更。每次对比前花 10 秒统一编码和换行符,比花 10 分钟猜哪一行是真改要可靠得多。











