filediffs插件安装失败或右键无反应,主因是package control未正常安装、待比对文件未保存(需有真实路径)、或编码/换行符不一致;乱码问题须统一为utf-8编码及unix(lf)换行符。

FileDiffs 插件装不上,或者装上了右键没反应、对比乱码——基本不是插件问题,而是安装路径、文件状态或编码不一致导致的。它本身不复杂,但每一步都卡在“看起来正常,其实漏了关键条件”。
Package Control 没跑起来,FileDiffs 就永远装不上
Sublime Text 原生不带插件管理,FileDiffs 必须走 Package Control 安装。如果按教程输 Package Control: Install Package 后提示 “command not found”,说明 Package Control 根本没装好或已损坏。
验证方式:按 Ctrl+`(Windows/Linux)或 Cmd+`(macOS)打开控制台,粘贴官方安装代码(来自 packagecontrol.io/installation),回车执行。装完必须重启 Sublime,再试一次命令面板搜索。
别跳过这步直接去 GitHub 克隆仓库——手动放错目录(比如放到 Packages/ 下的子文件夹里)、路径含中文、权限不对,都会让插件静默失效,右键菜单压根不出现。
右键菜单没 FileDiffs 选项?检查两个文件是否“真打开”且“真保存”
FileDiffs 只认磁盘上已有路径的已保存文件,不处理:
- 未保存的
Untitled标签页(状态栏显示 “Untitled” 或无路径) - 同一文件的两个标签页(比如分屏看同一个
index.js) - 从命令行用
subl -n打开的空缓冲区
正确做法:先分别双击侧边栏打开两个文件 → 确保每个标签页右下角显示完整路径(如 /project/src/config.json)→ 再在任一标签页右键 → 找 FileDiffs 子菜单。
如果右键只有灰色不可点的 Diff with saved,说明当前文件还没存盘,先按 Ctrl+S。
对比结果乱码、空行错位、整块标红?不是插件 bug,是编码/换行符不一致
FileDiffs 不做任何编码转换或换行符归一化,它比的是 Sublime 当前加载进内存的字节流。所以:
- 一个文件是
UTF-8 with BOM,另一个是纯UTF-8→ BOM 被当开头三个字符,全文件行号偏移 - 一个用
\r\n(Windows),另一个用\n(Unix)→ 每行末尾都被识别为差异,大量误标 - 一个含中文,另一个编码是
GBK→ 中文显示为方块或乱码,diff 块完全错位
解决方法只有前置统一:
对每个文件:右下角点击编码名 → Reopen with Encoding → UTF-8;再点右下角换行符标识 → Convert Line Endings → Unix (LF);最后 Ctrl+S 保存。做完再对比。
想用系统 git diff 引擎提速?先确认 git 在 PATH 里
默认内置 diff 在大文件(>1MB)或含大量中文时会卡顿甚至丢内容。换成 git 引擎更稳,但前提是终端能直接运行 git。
验证方式:打开系统终端(不是 Sublime 控制台),输入 git --version,有输出才说明可用。
配置方法:菜单 → Preferences → Package Settings → FileDiffs → Settings – User,加一行:
"diff_tool": "git"
别写成 "diff_tool": "git diff" 或带路径——插件只认工具名,且依赖 PATH 查找。如果仍乱码,不是配置问题,还是回到上一步检查文件编码是否真正统一。











