compare插件在notepad++ 8.5+中已官方下架,需手动下载对应架构dll并放入正确路径;比对要求两文件为相邻标签页、均已保存、编码一致(推荐utf-8 without bom)、换行符统一。

Compare 插件根本没出现在菜单里?先确认安装方式是否匹配版本
Notepad++ 8.5+ 版本起,Compare 插件已从插件管理器移除,不是“找不到”,是官方彻底下架了。你点 Plugins → Plugin Manager 搜索不到它,属于正常现象。
- 打开
帮助 → 关于 Notepad++,看右下角写的是x64还是x86(32位) - 去 GitHub 或可信源下载对应架构的
Compare.dll(注意:x64 版不能放进 x86 路径,反之亦然) - 放入正确路径:
%ProgramFiles%\Notepad++\plugins\Compare\Compare.dll(x64)或%ProgramFiles(x86)%\Notepad++\plugins\Compare\Compare.dll(x86) - 重启 Notepad++;若菜单仍不出现,右键任务栏图标 → “以管理员身份运行”再试一次(UAC 权限常导致插件加载失败)
点了 Compare 却报 “No reference document”?顺序和状态比内容还关键
这个错误不是文件没打开,而是插件压根没拿到两个有效文档——它只认“当前活动标签页 + 紧邻右侧标签页”这一固定组合,其他任何情况都静默跳过。
- 用
Ctrl+O分别打开两个文件,确保它们是两个独立标签页(不能是分屏、不能是工程树双击打开的只读副本) - 鼠标单击或
Ctrl+Tab切换,让**第一个文件(基准文件)成为当前焦点** - 第二个文件标签页必须**严格位于其右侧**,中间不能夹其他标签页(比如 [a.py] → [b.py] ✔️,[a.py] → [notes.txt] → [b.py] ❌)
- 两个文件都必须已保存:标题栏无
*;右键标签页 → “属性”确认未勾选“只读”
对比后全是红/全蓝,或显示 “Files are identical”?编码不一致会直接废掉比对
Compare 插件不做任何编码转换,它比的是原始字节流。一个 UTF-8 with BOM,一个 UTF-8 without BOM,哪怕内容一模一样,也会被标成整行差异。
- 右键任一标签页 → “编码” → “转为 UTF-8 without BOM”,两个文件都执行一遍
- 检查状态栏右下角,确认两个都显示
UTF-8 without BOM(不是UTF-8,也不是ANSI) - 保存后再比:任一文件未保存,
Compare可能跳过或误判为相同 - 若含混合换行符(CRLF + LF),先执行
编辑 → EOL 转换 → Windows (CR LF)统一格式
Alt+D 没反应、Alt+N/P 跳不到差异?快捷键依赖插件状态和配置
这些快捷键不是全局生效的,必须在比对激活后才可用,且受选项设置影响行映射关系。
- 先手动点一次
Plugins → Compare → Compare,等状态栏左下角出现Lines differ: X再按Alt+D -
Alt+N跳的是“下一个差异块首行开头”,不是“下一行”——可能跨几十行,光标停在被删行的上一行末尾 - 如果跳转卡住或偏移,进
Plugins → Compare → Options:仅勾Ignore white-spaces at line ends,取消勾选Compare case sensitive和Ignore changes in white-spaces only lines(后者会导致纯空格行被跳过,掩盖真实变更) - 大文件(>10 万行)跳转明显变慢,别硬等;可先用
Ctrl+F搜关键词定位,比依赖快捷键更可靠
Compare 对“已保存”和“相邻标签页”的零容忍——它不报错,只是静默放弃。只要有一个条件没满足,你看到的就只是“没反应”或“相同”,而不是明确提示。











