news 2026/9/17 14:38:17

Notepad-- 文件对比:文本逐行高亮差异,10M 内二进制也能比

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Notepad-- 文件对比:文本逐行高亮差异,10M 内二进制也能比

Notepad-- 文件对比:文本逐行高亮差异,10M 内二进制也能比

【免费下载链接】notepad--一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。项目地址: https://gitcode.com/GitHub_Trending/no/notepad--

Notepad-- 是一款支持 Windows/Linux/Mac 的 C++/Qt 文本编辑器,它的文件对比功能可以直接回答一个日常问题:两个版本的文件到底改了哪里。文本文件按行对齐并高亮差异,二进制文件做字节级比对,目录还能整棵对比——适合频繁修改配置文件、代码副本、日志导出的新手和普通开发者。

三步完成一次文件对比

  1. 启动 Notepad--,用“文件”菜单打开要对比的两个文件(也可以先把它们开在两个标签页里)。
  2. 点击菜单栏的“对比”菜单,选择文件对比入口,分别指定左侧文件和右侧文件。
  3. 等待对比完成,在对比视图中查看逐行高亮的差异结果,再用工具栏的箭头在上一处/下一处差异之间跳转。

如果你在 Mac 上使用,流程完全一致,只是界面按 macOS 习惯排列:

![Notepad-- Mac版编辑与文件对比入口界面](https://raw.gitcode.com/GitHub_Trending/no/notepad--/raw/4510896f716e71db9f4b25ed8559b9c39a4f23d4/pngshow/macos/2023-10-05 18.04.17.png?utm_source=gitcode_repo_files)

对比功能能处理什么:文件类型、上限与编码识别

  • 文本对比:逐行比较内容,差异行高亮显示。行对齐基于最长公共子序列(LCS)思路实现,LineFileInfo结构体里的isLcsExist字段标记该行是否属于对齐段的一部分,空白行会单独归类参与对齐,所以增删空行也能被识别。
  • 二进制对比:字节级比较,单个文件上限为 10MB,常量MAX_BIN_SIZE定义在 src/CmpareMode.h 中,超出这个尺寸就换文本模式或分段处理。
  • 编码自动识别:对比前先扫描文件真实编码。scanFileRealCode默认扫描前 200 行判定编码,judgeFinalTextCode综合 GBK/UTF-8/Unicode 检测结果给出最终编码,BOM 文件(如 UTF-8-BOM)会被单独识别,相关实现在 src/CmpareMode.cpp 和 src/Encode.h。
  • 状态栏兜底:编辑区右下角状态栏实时显示当前文件的行尾格式与编码(如Windows(CR LF)UTF8-BOM),对比前扫一眼这里,能提前发现两个文件行尾不一致的情况。

对比结果看不准时,先看这四个细节

  • 先统一编码再对比:同一文件 GBK 和 UTF-8 两个副本直接比会整片“全不同”。用“编码”菜单转成相同编码,或留意状态栏的编码提示后再发起对比。
  • 大文件走二进制:超过 10MB 的文本文件不要硬用文本对比,10M 是二进制对比的硬上限(MAX_BIN_SIZE),大日志、导出件改用二进制模式更稳。
  • 行对齐看 MD4 摘要:对比时每行内容(不含行尾换行符)会计算 MD4 值用于行匹配,所以两行哪怕位置不同,只要内容一致就不会被标成差异。
  • 用“最近对比”找回上次的对象:菜单栏的“最近对比”会记录上一轮对比的文件,重复对比同一组文件时不用再翻路径。

把仓库克隆到本地,打开两个版本的文件,三分钟内就能看到高亮差异:

git clone https://gitcode.com/GitHub_Trending/no/notepad--

【免费下载链接】notepad--一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。项目地址: https://gitcode.com/GitHub_Trending/no/notepad--

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 14:37:26

自然连接⋈的真相:不是自动匹配,而是隐式多条件陷阱

1. 项目概述:为什么“自然连接”是数据库里最常被误解、也最该被吃透的操作?“土话笔记:数据库——自然连接(符号⋈)”这个标题,乍看像学生课后随手记的潦草笔记,但恰恰是这种带点烟火气的命名,戳中了数据库…

作者头像 李华
网站建设 2026/9/17 14:32:36

DataGrip连接达梦数据库完整指南:从JDBC驱动到排障实战

最近接手一个从Oracle往达梦数据库迁移的项目,数据切过去了,开发工具却卡了我整整两天。打开DataGrip一看,驱动列表里根本没达梦这一项。网上翻了很多资料,一半是讲达梦自带的DM管理工具怎么用,另一半是零散提问没人完…

作者头像 李华
网站建设 2026/9/17 14:31:00

基于QPSO的IEEE33配电网重构:MATLAB实现与潮流计算详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华