filediffs 插件在 sublime text 4 上可用但需满足严格条件:必须通过 package control 安装,文件须已保存且路径为英文、编码与换行符统一,否则右键菜单不显示或对比乱码。

FileDiffs 插件在 Sublime Text 4 上能用,但装上不等于能比——它对文件状态、编码、路径有硬性要求,不满足就静默失败,右键菜单不出现,或对比结果全是乱码。
Package Control 装没装好,直接决定 FileDiffs 能不能装
Sublime Text 4 原生不带插件管理,FileDiffs 必须走 Package Control 安装。如果按 Ctrl+Shift+P 输入 Package Control: Install Package 后提示 command not found,说明 Package Control 根本没生效。
- 按
Ctrl+`打开控制台,粘贴官方安装代码(来自 packagecontrol.io/installation),回车执行 - 安装完必须重启 Sublime Text 4,再试一次命令面板搜索
- 别手动下载 ZIP 放进
Packages/目录——路径含中文、放错层级、权限不对,都会导致插件加载失败,右键菜单完全不显示
右键没 FileDiffs 菜单项?两个文件都没“真打开”
FileDiffs 只响应已加载进编辑器缓冲区、且有真实磁盘路径的文件。未保存的 Untitled 标签页、同一文件的两个标签页、命令行空缓冲区,全都不支持。
- 每个标签页右下角必须显示完整路径(如
/project/src/index.js),不能是Untitled - 不能是同一个文件分屏打开(比如左右都是
config.json) - 侧边栏多选后右键无响应?可能是路径含中文或空格,临时移到纯英文路径下测试
- 装完插件无需重启,但右键菜单只在满足上述条件的标签页上才出现
对比结果乱码、空行错位、整块标红?不是插件问题,是编码和换行符不一致
FileDiffs 不做任何编码转换或换行符归一化,它比的是 Sublime 当前加载进内存的原始字节流。UTF-8 with BOM vs GBK、\r\n vs \n,都会导致差异误报甚至崩溃。
- 逐个打开待比文件 → 右下角点编码名(如
UTF-8 with BOM)→Reopen with Encoding→UTF-8 - 再点右下角换行符标识(如
Windows (CRLF))→Convert Line Endings→Unix (LF) - 统一保存后再对比;仍乱码可在
Preferences → Package Settings → FileDiffs → Settings中加配置:"diff_tool": "git"(需系统已装 Git 并加入 PATH)
想并排看差异?默认不提供,得手动拆分视图+拖拽
FileDiffs 默认输出是单标签页的文本 diff(类似 git diff 输出),不是左右并排视图。要并排观察,必须手动干预布局。
- 先用
Ctrl+K, Ctrl+2把窗口拆成左右两栏 - 分别在左右栏打开两个目标文件
- 在左栏右键 →
FileDiffs: Compare Current File with Other File - 生成的 diff 标签页会出现在当前栏,拖到右栏即可并排;也可配快捷键:
{"keys": ["ctrl+shift+d"], "command": "file_diff_menu"}加到用户键绑定里
最容易被忽略的点:FileDiffs 不处理未保存内容,也不自动识别 Git 状态;你看到的“差异”,只是 Sublime 当前内存里那两段文本的字节级比对结果——所以编码、换行符、BOM、空格,全都得你自己提前对齐。











