filediffs 装上≠能用,90%对比失败源于文件未保存、编码/换行符不一致或操作错误;须确保已保存、路径完整、编码统一(utf-8)、换行符一致(lf),并正确右键已激活标签页调用命令。

FileDiffs 装上≠能用,90% 的“对比失败”不是插件问题,而是文件没保存、编码不一致或右键点错了地方。
FileDiffs 安装后右键没菜单?先确认 Package Control 活着
按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Package Control: Install Package 回车——如果报 command not found,说明 Package Control 根本没装好。
- 打开控制台(
Ctrl+`或Cmd+`),粘贴官网安装代码(来自 packagecontrol.io/installation),回车执行 - 必须重启 Sublime Text,再试一次命令面板搜索
- 等列表加载完,**严格输入
FileDiffs(末尾带 s,大小写敏感)**,别输成FileDiff、filediffs或FileDifferences - 手动下载 ZIP 放进
Packages/目录?路径含中文、放错层级、权限不对,都会导致插件静默失效
右键点了半天没反应?你可能根本没“真正打开”文件
FileDiffs 只认有真实磁盘路径的已保存文件,对 Untitled-1、未保存副本、同一文件分屏打开完全无视。
- 两个标签页右下角都必须显示完整路径(如
/project/src/config.json),不能是Untitled - 不能是同一个文件被左右分屏打开(比如左右都是
index.js) - 侧边栏右键无效——必须先点击任一已打开的标签页,让它成为活动视图,再右键
- 右键菜单里只有灰色不可点的
Diff with saved?说明当前文件还没存盘,先按Ctrl+S
对比结果全是红块绿块、中文变方块?不是插件 bug,是编码和换行符在打架
FileDiffs 不做任何编码转换或换行符归一化,它比的是 Sublime 当前加载进内存的原始字节流。一个 UTF-8 with BOM,一个 GBK,一个 CRLF,一个 LF,就会导致整段误标差异。
- 逐个打开待比文件 → 右下角点击编码名(如
UTF-8 with BOM)→Reopen with Encoding→UTF-8 - 再点右下角换行符标识(如
Windows (CRLF))→Convert Line Endings→Unix (LF) - 缩进敏感格式(如
YAML、Markdown)建议再执行Convert Indent to Spaces对齐 - 仍乱码?可在
Preferences → Package Settings → FileDiffs → Settings中加配置:"diff_tool": "git"(需系统已装 Git 并加入 PATH)
想并排看差异?FileDiffs 默认不干这事,得手动拆栏+拖拽
FileDiffs 默认把差异输出到新标签页(纯文本 diff),不是左右并排窗口。要并排,必须自己动手:
- 先用
Ctrl+K, Ctrl+2(Win/Linux)或Cmd+K, Cmd+2(macOS)把窗口拆成左右两栏 - 分别在左右栏打开两个目标文件
- 在左栏标签页右键 →
FileDiffs: Compare Current File with Other File→ 选中右栏的文件 - 生成的 diff 标签页默认出现在左栏,把它拖到右栏空白处,就能和原文件并排观察
最易忽略的一点:很多人以为“双击打开两个文件”就自动具备对比条件,其实默认是单栏堆叠布局,此时运行对比命令,diff 结果会挤在同一个标签里,根本看不出哪行变了。











