FileDiffs插件仅标出行级文本差异,不识别逻辑冲突;必须满足三条件:两文件均已保存且路径完整、非同一文件的副本、编码与换行符统一;并排对比需手动分栏操作。

FileDiffs 插件能快速标出两份代码的行级差异,但不会自动识别“逻辑冲突”——它只告诉你哪几行文字不同,是否构成冲突得你来判断。
FileDiffs 安装和启用前必须确认的三件事
很多人装完插件右键没菜单,不是插件坏了,是基础条件没满足:
- 两个文件都必须已保存(状态栏显示完整路径,不能是
Untitled-1) - 不能是同一文件的两个标签页(比如分屏打开同一个
config.py) - 编码必须一致:一个
UTF-8 with BOM、一个纯UTF-8,会导致整段误标为差异;统一用File → Reopen with Encoding → UTF-8
对比时为什么整段变红?换行符和缩进不一致是主因
常见现象:两个 Python 文件只改了一行,结果 FileDiffs 标出 20 行差异,全是空行或注释位置偏移。这不是 bug,是比对引擎在按原始文本流逐行对齐:
-
CRLF(Windows)和LF(macOS/Linux)混用,会让所有后续行错位 - 一个用 4 空格缩进,另一个用 Tab,哪怕内容完全一样,也会被识别为“行内容不同”
- 解决方法:打开每个文件 → 右下角点击换行符标识 →
Convert Line Endings → Unix (LF);再点缩进标识 →Convert Indentation to Spaces→ 设为 4
如何让 FileDiffs 输出并排视图而非纯 diff 文本
默认 FileDiffs 生成的是类似 git diff 的上下文格式(带 @@ 行号),没法左右对照看。要并排,得手动组合操作:
- 先用
Ctrl+K, Ctrl+2(Win/Linux)或Cmd+K, Cmd+2(macOS)把窗口拆成左右两栏 - 左栏打开文件 A,右栏打开文件 B
- 在左栏标签页右键 →
FileDiffs: Compare Current File with Other File→ 选中右栏的文件 B - 生成的 diff 结果默认出现在左栏,把它拖到右栏空白处,就能和原文件 B 并排观察
逻辑冲突不能靠插件自动发现,得靠你加一层人工过滤
FileDiffs 告诉你 “A 文件第 42 行是 return True,B 文件第 42 行是 return False”,但它不会标出 “这可能是权限校验逻辑反转”。真正要定位逻辑冲突,得结合上下文:
- 对比前先用
Find All in Files搜关键函数名(如check_auth、validate_input),确认两边是否都存在、是否调用路径一致 - 如果某段逻辑在 A 中被删了,但在 B 中新增了同名函数,FileDiffs 不会提示“缺失”,只会显示“B 多出一整块”——这时得看
SideBarEnhancements → Diff扫结构差异 - 大文件慎用:超过 5000 行时 FileDiffs 渲染慢,建议先用
Ctrl+L选中可疑函数块,复制到新标签页再比










