notepad++ 8.x 默认不带 compare 插件,需手动下载匹配架构的 dll 放入 plugins\compare\ 目录并重启;对比前须统一文件编码,且注意“忽略空白字符”选项会影响差异识别。

Compare 插件在 Notepad++ 8.x 中默认不可用,必须手动安装
Notepad++ 自 7.9 版起移除了内置的 Compare 功能,8.x 版本(包括最新稳定版)不再自带 Compare 插件。它已从官方插件管理器中下架,直接在「插件管理器」里搜不到,也不是「已安装」状态——不是你没找到,是它真没了。
正确路径是:下载独立编译版 DLL,放入插件目录,再手动注册。过程不复杂,但路径和版本匹配稍有不慎就会“点了菜单没反应”。
- 必须使用与你的 Notepad++ 架构一致的版本:
Compare.dll有 x86 和 x64 两个版本,32 位 Notepad++ 配 x86,64 位配 x64(可通过「帮助 → 关于」查看) - 插件文件需放在
%PROGRAMFILES%\Notepad++\plugins\Compare\Compare.dll(注意是Compare\子目录,不是直接丢进plugins\) - 首次放入后需重启 Notepad++,菜单栏才会出现「插件 → Compare → Compare」
对比时中文乱码或空行错位,大概率是编码不一致
Compare 插件本身不自动转码,它逐行比对原始字节流。如果 A 文件是 UTF-8(无 BOM),B 文件是 GBK,哪怕内容完全一样,也会被标为全红——不是逻辑错,是字节不同。
解决方法不是改插件,而是统一打开方式:
- 先分别用 Notepad++ 打开两个文件,在右下角状态栏确认编码显示一致(如都是
UTF-8或都是GBK) - 若不一致,用「编码 → 转为 XXX」手动转换其中一个(推荐转为
UTF-8-BOM,兼容性最稳) - 保存后再对比——尤其注意带 BOM 的 UTF-8 和无 BOM 的 UTF-8 在插件眼里是两种内容
对比结果里“仅左侧/右侧存在”的行被忽略?检查是否启用了「忽略空白字符」
Compare 插件默认开启 Ignore blank differences(在「插件 → Compare → Options」里),它会跳过纯空格、制表符、换行符差异。这本来是好意,但容易掩盖真实问题:
- 比如一行末尾多了一个空格,或缩进从空格变成制表符,勾选该选项后这两行就显示“相同”
- Git 提交前想确认空格改动?必须取消勾选这个选项
- 还有个隐藏影响:当两行仅差一个换行符(CRLF vs LF),也属于“空白差异”,会被静默忽略
替代方案:不用插件也能快速比对,适合临时需求
如果你只是偶尔比对、不想折腾 DLL,Notepad++ 内置功能够用:
- 把两个文件并排打开 → 「视图 → 移动/复制到另一视图」→ 用「Ctrl+F」调出查找窗口 → 切换到「查找全部」模式 → 输入一个唯一字符串,看两边高亮是否一致
- 更准一点:全选 → 「编辑 → 拷贝为 HTML」→ 粘贴到浏览器,肉眼扫差异(适合小文件,且保留格式)
- 终极省事:直接拖两个文件到命令行,执行
fc /n file1.txt file2.txt(Windows 自带),输出带行号,不依赖 GUI
插件不是必需品,真正卡住的往往是编码和空白处理逻辑——这些细节不调对,装了 Compare 也白装。











