必须先手动安装compare插件、再按顺序激活两个已保存且编码统一的文件、最后用alt+d比对并alt+n/p跳转差异块——任一环节错位都会导致静默失败或报“no reference document”。

要在 Notepad++ 中精准标出两个文本文件的逐行差异,必须先让 Compare 插件可用、再严格按顺序激活两个已保存文件、最后用快捷键跳转差异块——任一环节错位都会导致静默失败或报“No reference document”。
安装并启用 Compare 插件
Notepad++ v8.5+ 版本已从插件管理器中移除 Compare,它不会出现在 Available 列表里,手动勾选安装必然失败。
打开菜单栏 → Plugins → Plugin Manager → Show Plugin Manager,若列表中找不到 Compare,说明你正使用 v8.5 或更新版本,必须跳过此路径。
先确认架构:帮助 → 关于 Notepad++,看标题栏末尾是 【x64】 还是 【x86】;去官网或可信源下载对应架构的 Compare.dll(x64 版不能放进 x86 目录)。
将 DLL 放入 【%ProgramFiles%\Notepad++\plugins\Compare\compare.dll】(注意是 plugins 下的 Compare 子目录,不是直接丢进 plugins 根目录)。
重启 Notepad++ 后仍不见 Plugins → Compare 菜单项?右键任务栏图标 → “以管理员身份运行”,UAC 权限不足会导致插件加载失败。
准备待比对的两个文件
Compare 插件只认一种顺序:当前活动标签页为参考文件,紧邻右侧标签页为比对文件。它不识别右键选中、不支持分屏、不接受未命名空标签。
第一步:用 Ctrl+O 分别打开两个文件,确保它们是两个独立标签页(不能是“视图 → 移动/复制当前文档”生成的副本)。
第二步:鼠标单击左边文件标签,让它成为当前活动页;右边文件标签必须紧挨着它——中间夹了任何其他标签(包括 new 1)都会导致插件取不到第二个文档。
第三步:检查两个标签页标题是否都无 * 星号;若有,先 Ctrl+S 保存。任一未保存状态会导致 Compare 跳过该页,误判为“Files are identical”。
第四步:右键任一标签页 → 编码 → 转为 UTF-8 without BOM;对另一个文件重复操作。状态栏右下角必须同时显示“UTF-8 without BOM”,而非“UTF-8”或“ANSI”。编码不一致会引发整行偏移,高亮全红或全蓝不是 bug,是字节流解析错位。
执行比对并跳转差异块
方法一:菜单触发
确保第一个文件为当前焦点后,点击 Plugins → Compare → Compare。成功时状态栏左下角立即显示“Lines differ: X”(X 为差异块数量);若显示“Files are identical”,请立刻返回上一阶段检查编码与保存状态。
方法二:快捷键触发
光标置于任意一个文件编辑区内,直接按 Alt+D。这一步不弹窗、不提示,只刷新状态栏——没看到“Lines differ”就等于没跑起来。
Alt+N 和 Alt+P 不是跳到“下一行”,而是跳到下一个/上一个逻辑差异块首行开头。比如删除了 5 行函数体,光标会停在被删函数上一行的末尾,而不是空白行中间。
差异块左侧的 + / – / ! 图标不可点击,它们只是标记类型(新增/删除/修改),不是折叠控件;想快速定位,只能靠 Alt+N/P 循环跳转。











