Notepad++ 无内置非插件文件对比功能,所有“免插件对比”均依赖外部工具如 fc 命令或 PowerShell Compare-Object,仅能输出差异行号或行级集合差异,无法实现界面内高亮显示。

Notepad++ 本身没有内置的、开箱即用的非插件文件对比功能。所有声称“不用插件就能比”的操作,实际都依赖外部命令、系统工具或变通技巧,且无法在 Notepad++ 界面内直接呈现高亮差异块。如果你看到“不装 Compare 就能比”,大概率是混淆了「打开两个文件」和「真正对比差异」——前者可行,后者不行。
用 fc 命令行比对并跳回 Notepad++ 查看
Windows 自带的 fc(File Compare)命令可快速判断两文件是否一致,并输出首处差异行号:
- 先确保两个文件已保存,路径不含中文或空格(或用英文引号包裹),例如:
C:\tmp\a.txt和C:\tmp\b.txt - 按
Win+R输入cmd回车,在命令行中运行:fc /n "C:\tmp\a.txt" "C:\tmp\b.txt" -
/n参数会显示行号;若输出含*****分隔线及具体行内容,说明有差异;若只显示FC: no differences encountered,则完全一致 - 记下差异行号(如第 42 行),回到 Notepad++ 中按
Ctrl+G跳转到该行,手动对照——这不算“自动高亮”,但省去了逐行扫视
用 PowerShell + Compare-Object 比较纯文本行(非逐字符)
适用于想快速知道「哪些行在 A 有、B 没有」这类集合差异,不关心行内修改细节:
- 把两个文件拖进 Notepad++ 后分别另存为无 BOM 的 UTF-8(右键 → 编码 → UTF-8 without BOM),避免乱码干扰
- 在文件所在目录打开 PowerShell,运行:
Compare-Object (Get-Content a.txt) (Get-Content b.txt) -PassThru | ForEach-Object { "$($_.InputObject) ← $($_.SideIndicator)" } - 输出中
=>表示仅在第二个文件出现,表示仅在第一个文件出现;结果不会定位到 Notepad++,但可复制粘贴到新标签页辅助排查 - 注意:
Compare-Object默认忽略顺序,也不识别「某行被修改」,只当两行字符串完全相等才视为相同
用临时分屏 + 肉眼扫描(仅限极小文件)
Notepad++ 支持单文件分屏(视图 → 移动/复制当前文档 → 移动到另一视图),但这是同一文件的两个视图,无法用于跨文件比对。所谓“非插件分屏对比”本质是:
- 手动打开两个文件 → 拖拽标签页成左右并排(窗口级排列,非编辑器内分屏)
- 调整字号、关闭换行、启用“显示所有字符”(视图 → 显示符号 → 显示所有字符),方便发现空格/CRLF 差异
- 按住
Alt拖动滚动条同步纵向滚动(无自动同步,需手稳) - 此法无任何差异标记,全靠人眼,超过 50 行就极易漏判;且无法跳转,不能替代
Alt+N/Alt+P
真正卡点不在“怎么打开两个文件”,而在于“如何让 Notepad++ 理解哪几行变了”。只要不装 Compare 插件,就不存在行级差异高亮、图标标记、快捷键导航这些能力——所有绕过插件的方案,最终都得靠人工补位或导出到别处处理。如果每天要对比代码或配置,装 Compare 是唯一合理路径;临时应急查一行,fc /n 最轻量。


















