FileDiffs 插件失效主因是环境未对齐:Package Control 未安装或未生效、文件未真实保存且路径完整、编码与换行符不一致、缩进混用,需逐一校准方可正常比对。

FileDiffs 插件装上不等于能比,90% 的“没反应”“全红块”“中文变方块”,根本不是插件问题,而是文件状态或环境没对齐。
Package Control 没跑起来,FileDiffs 就永远装不上
Sublime Text 原生不带插件管理,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/目录?路径含中文、放错层级(比如放到Packages/sublime-file-diffs/里)、权限不对,都会导致插件静默失效
右键菜单没 FileDiffs 选项?两个文件都没“真打开”
FileDiffs 只响应已加载进缓冲区、且有真实磁盘路径的文件。它不处理 Untitled-1、未保存副本、或同一文件分屏打开的情况。
- 每个标签页右下角必须显示完整路径(如
/project/src/config.json),不能是Untitled或空白 - 不能是同一个文件被左右分屏打开(比如左右都是
index.js)——必须是两个不同路径的已保存文件 - 侧边栏右键无效:Sublime 的上下文菜单只响应当前焦点视图,得先点击任一已打开的标签页,让它成为活动视图,再右键
- 右键菜单里只有灰色不可点的
Diff with saved?说明当前文件还没存盘,先按Ctrl+S保存
对比结果全是乱码、空行错位、整块标红?编码和换行符在打架
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) - 缩进混用(Tab vs 空格)也会误标:对 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 标签页默认出现在当前栏,拖到右栏即可并排观察
- 快捷键可配:
{"keys": ["ctrl+shift+d"], "command": "file_diff_menu"}加到用户键绑定里,但注意:这是弹菜单命令;若只想直接比剪贴板,用"file_diff_clipboard"


















