告别乱码与慢对比:Notepad-- 跨平台文本编辑与文件对比完全指南
2026/9/17 23:11:46 网站建设 项目流程

告别乱码与慢对比:Notepad-- 跨平台文本编辑与文件对比完全指南

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

从 Windows 拷来的 GBK 文档在 Mac 上打开,满屏方块,切了三次编码才显示正常——这是处理跨系统文档最磨人的时刻。Notepad-- 是一款国产跨平台文本编辑器,文件对比、批量替换、编码自动识别全都内置。

三个高频痛点:乱码、比对、批量搜索

💡痛点:GBK/Big5 文档打开满屏方块Windows 同事发来的 .ini 是 GB18030 编码,按 UTF-8 打开就是一行一行方块。Notepad-- 内置 20 余种编码自动识别,识别结果直接写进状态栏,比如"GB18030 (GBK 中文) Windows (CR LF)"。识别错了也不用猜:菜单"编码"→ 选 GB18030 "按编码打开",再用"编码转换"存成 UTF-8,一次修好。

Notepad-- Mac 文本编辑界面,状态栏显示 GB18030 (GBK中文) 编码与目录树图1:Mac 上编辑 GB18030 编码的中文文件,状态栏直接标出当前编码与换行风格

🔧痛点:终端 diff 翻来覆去对不齐两个 .cpp 差了十几处,终端diff输出翻屏都找不到第二处。Notepad-- 的"对比"菜单提供并排视图,改动行红色标记,"上一个/下一个"按钮在差异之间跳转,底部直接报数"当前有 14 处不同块",找差异从翻屏变成数数。

🛠️痛点:老项目几百个文件逐个搜索替换不现实重构时要把一个类名从 160 个文件里换掉,普通编辑器只能一个个开。"查找"→"在目录查找"一次跑完:指定目录、按*.cpp,*.h过滤文件类型,搜索完底部列出命中文件和行号,预览没问题再点"在文件中替换"。下图这次搜索在 161 个文件里命中 899 处,还能跳过超过 20MB 的大文件。

性能上它不占内存:

机型打开 100MB 文件内存占用
M1 MacBook Air2.3 秒约 32MB
M2 MacBook Pro1.9 秒约 28MB
Intel i5 MacBook Pro3.5 秒约 45MB

Mac 上 3 分钟跑通:最简依赖与一键编译

环境要求先看三条:

  • macOS 10.14(Mojave)及以上
  • Intel 或 Apple Silicon 芯片
  • 4GB 内存 + 10GB 可用磁盘空间

走哪条路,取决于你:

命令行熟悉,想用上最新特性? ├─ 是 → 源码编译(下方两步命令) └─ 否 → 去项目 Releases 页下载 .dmg,拖进 Applications 即用

源码编译,先装依赖:

xcode-select --install # 命令行工具,编译必需 brew install qt@5 cmake ninja # 装 Qt 5.15,别用 Qt 6 brew doctor # 确认依赖无冲突

为什么这样做:工程只依赖 Qt 5 的 Core/Gui/Widgets 等模块,Qt 6 与 QScintilla 组件存在 ABI 差异,装了 Qt 6 也要显式指定 5 的路径。

然后克隆、配置、编译:

git clone https://gitcode.com/GitHub_Trending/no/notepad-- cd notepad-- cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH=$(brew --prefix qt@5) cmake --build build -j$(sysctl -n hw.ncpu)

为什么这样做:根 CMakeLists.txt 已通过add_subdirectory把编辑引擎 src/qscint/ 一起编译,不必单独装 QScintilla;显式传 Qt 5 前缀可避免 cmake 抓到 Qt 6 报错。

产物在build/bin/,直接./build/bin/NotePad--先跑一遍验证。

💡小贴士:之后只改了个别源文件,不用重新配置,cmake --build build -j增量编译即可。

常用实战场景:多标签编辑、文件对比、目录级批量替换

场景一:多标签编辑 + 语法高亮

文件直接拖进窗口,一次拖多个就开多个标签,底部状态栏同步显示当前语言、行列号、编码。查找走Ctrl+F(Mac 上为 Cmd+F)、替换Ctrl+H,替换框会自动带上选中的文本,改完不用手敲。

图2:多标签编辑一个翻译文件,左侧行号、右侧行尾标记与状态栏一目了然

场景二:两文件对比,差异直接跳转

操作路径:"对比"菜单 → 选择文件对比 → 选好左右两个文件 → 工具栏"上一个/下一个"逐处跳转 → 点"规则"设置忽略空白/空行,"严格"和"忽略"切换匹配松紧。改动行红色底纹标出,底部报数"当前有 14 处不同块",核对配置差异或代码走查时不用肉眼找茬。

Notepad-- 文件对比界面,改动行红色标记并显示不同块数量图3:两个 ccnotepad.cpp 并排对比,差异行红色高亮,底部提示共 14 处不同块

场景三:目录级批量查找替换

操作路径:"查找" → "在目录查找" → 设目标目录和文件类型过滤(如*.cpp,*.h)→ 普通/正则模式二选一 → 点"全部查找" → 底部结果列表按文件展开 → 确认后点"在文件中替换"。结果列表可放大缩小,命中行号直接可跳转。

图4:在目录查找 161 个文件命中 899 处,支持文件类型过滤与跳过超大文件

避坑指南:三个最高频问题及修复

1. 现象:cmake 阶段报Could NOT find Qt5,或链接时一片 undefined symbol根因:系统里装了 Qt 6,Homebrew 的 Qt 不在 cmake 默认搜索路径修复:重新配置时显式指前缀,一行解决

cmake -S . -B build -DCMAKE_PREFIX_PATH=$(brew --prefix qt@5)

2. 现象:文件能打开但满屏乱码方块,换字体也没用根因:文件是 GB18030/GBK,程序默认按 UTF-8 解码修复:菜单"编码"→ 选 GB18030 "按编码打开" → 再用"编码转换"另存为 UTF-8,下次打开不再乱

3. 现象:打开几 MB 以上的大文件,滚动和输入都发卡根因:大文件仍做完整语法解析和高亮,计算量叠加修复:打开大文件时选择"大文本"打开模式(跳过完整语法解析);确要高亮时,换一套配色简单的主题,主题文件都在 src/themes/ 下

让编辑器一直保持顺手

回到开篇的场景:现在 GBK 文档进来,状态栏直接报编码,打开、对比、转换各一步,不用切三次编码。想跟上新版本:

cd notepad-- && git pull cmake --build build -j

各版本功能与修复明细看 changelog.txt,比如大文本双模式、tailf 滚动、MD5/SHA 计算都是后续版本补上的。遇到奇怪的问题,先翻项目 wiki 和 issue 区,大概率有人踩过同一个坑。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询