notepad-- 完整指南:跨平台文本编辑器的文件对比、批量替换与乱码处理
【免费下载链接】notepad--一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。项目地址: https://gitcode.com/GitHub_Trending/no/notepad--
写中文文档在 Windows 上正常,拷到 Linux 同事机器上打开全是乱码;想在一个项目里把某个变量名统一改掉,只能一个一个文件手动替换。notepad-- 是一款支持 Windows / Linux / macOS 的跨平台文本编辑器,内置文件对比、跨目录批量查找替换和 GBK / UTF-8 编码切换,代码开源免费,用 C++/Qt 编写。这篇文章带你从克隆源码、编译运行开始,讲清楚它最值得用的几个功能怎么用。
👀 一眼看懂:谁适合用它
这一章用一张表回答"我到底需不需要它"。
| 你的情况 | notepad-- 对应的功能 |
|---|---|
| 文件要在 Windows 和 Linux 之间互传,经常遇到编码乱码 | 编码菜单内置 GBK、UTF-8、UTF-8 BOM、Big5 等格式,打开后一键互相转换 |
| 需要审查两个文件改了什么(配置变更、代码版本差异) | 对比菜单提供文件对比、目录对比、二进制对比,差异高亮显示 |
| 要在整个项目目录里统一改一个词 | 目录查找对话框支持普通、正则两种模式,先查后换 |
| 编辑 XML、JSON 配置文件嫌排版乱 | 工具菜单内置"格式 XML / 格式 JSON",一键整理缩进 |
| 参与 Qt 软件国际化,需要维护 .ts 翻译文件 | 翻译条目按文件分行显示,未翻译条目有类型标记 |
| 想给编辑器加自己的功能 | 提供 C++/Qt 插件框架,仓库里自带 helloworld 示例 |
⚙️ 装起来跑起来:5 分钟克隆并编译 notepad--
这一章解决"从源码到能用"的问题。编译需要 CMake 3.16 以上和 Qt5 开发库(Core、Gui、Widgets、Concurrent、Network、PrintSupport、XmlPatterns),编辑器内核 qscintilla 已包含在仓库 src/qscint/ 里,不需要额外下载。
- 克隆仓库:
git clone https://gitcode.com/GitHub_Trending/no/notepad-- cd notepad--- 配置并编译(以 Linux 为例,Windows 下同样用 CMake 配置后在 Visual Studio 中打开构建):
cmake -B build -DCMAKE_BUILD_TYPE=Release cmake --build build -j- 首次启动后做三项基础设置:
- 语言:在【语言】菜单选择简体中文,重启后生效;
- 编码:打开文件后看状态栏右侧的编码标识,在【编码】菜单里把 GBK、UTF-8、UTF-8 BOM 之间切换,乱码消失即说明选对了格式;
- 外观:在【设置】菜单切换深色或浅色主题,语法配色在【语言】菜单下按字母分类选择。
📋 文件对比:3 步高亮两个版本的差异
这一章解决"两个文件到底改了什么"的问题。
什么时候用:合并代码前审查改动、配置发版前后核对、两个导出文件做一致性检查。它不只支持单文件,还有目录对比(整个文件夹递归比对)和二进制对比两种模式。
怎么操作:
- 用【文件】→【打开】把两个文件都打开,形成两个标签页;
- 点菜单栏【对比(C)】→【文件对比】。也可以更快:在任意标签页上右键,先选"Select Left Cmp File"再选"Select Right Cmp File",编辑器会自动替你选齐左右两个文件并直接打开对比视图;
- 差异行会用不同底色区分新增、删除和修改,可以逐块查看。
注意点:对比时左右文件的先后顺序会影响"新增/删除"的判定方向,先看左侧内容再选右侧内容,结果更直观。对比二进制文件(如压缩包、图片)请改用二进制对比,不要走文本模式。
🔍 批量查找替换:一个对话框改遍整个目录
这一章解决"改一个词要翻几十个文件"的问题。
什么时候用:项目里统一修改 API 名称、批量修正拼错的字符串、更新多份配置文件里的同一个参数。
怎么操作:
- 按 Ctrl+Shift+D,或点【查找(S)】菜单里的目录查找项,打开"查找与替换"对话框;
- 设置目标目录,勾选"文件类型"并填入过滤规则(如
*.cpp、*.ui),输入查找目标; - 先点"全部查找"。底部结果窗格会按文件分组列出命中位置,逐行标注行号,双击即可跳转,确认没伤及无关内容;
- 确认无误后再填"替换为",执行在文件中替换。
注意点:查找模式分普通和正则两种,正则模式下特殊字符要记得转义;"全词匹配""匹配大小写"两个选项决定了命中范围,替换前建议再预览一次。选项区还允许跳过子目录、跳过隐藏文件、跳过二进制文件,以及设置跳过超过指定大小的文件(默认 20 MB),防止超大文件拖慢搜索。
📄 多格式文件支持:代码、XML、JSON 与翻译文件
这一章解决"打开不同格式的文件,编辑器能不能看懂"的问题。
什么时候用:
- 代码文件:内置 40 多种语言的高亮与折叠,C/C++、Java、Python、JavaScript、Go、Rust、SQL、YAML 等都能自动识别。折叠用 Alt+1 到 Alt+8 按层级收起,Alt+数字按层展开;
- XML / JSON:【工具】菜单下有"格式 XML"和"格式 JSON",一键整理缩进和换行,适合处理手写或导出的配置;
- 翻译文件(.ts):打开 Qt 的 .ts 翻译文件后,条目按源码位置组织,translation 行带类型标记,
unfinished状态一眼可见,方便定位漏翻的条目(本仓库的 realcompare_zh.ts 就是这样的文件); - 纯文本与二进制:右键标签页可在文本模式和十六进制模式之间重载同一个文件,二进制内容也能查看和对比。
注意点:语法语言列表在【语言】菜单下按首字母分类,如果某种文件高亮不对,手动选一次对应语言即可。
⚡ 效率:快捷键、大文件与插件入口
这一章把提升日常效率的几个零散功能放在一起讲。
自定义快捷键:【设置(T)】菜单进入快捷键管理,常用默认值有——查找 Ctrl+F、替换 Ctrl+H、目录查找 Ctrl+Shift+D、关闭 Ctrl+W、行折叠 Alt+1~8、行注释 Ctrl+Q、块注释 Ctrl+K。任意一项都可以改成自己的组合键。
大文件:打开超大文件时,编辑器会询问处理方式并提示大文件模式——大文件按块加载,只把需要的部分读进内存,滚动和定位不受全文档大小拖累。处理日志这类不断增长的文件时建议直接以大文件方式打开。
插件开发:想扩展功能可以看 src/plugin/helloworld/ 下的示例插件,主 CMakeLists.txt 里已经包含了对应的编译入口,照着这个结构写一个新的导出接口文件,编译后放入插件目录即可被加载。插件机制的实现代码在 src/pluginmgr.cpp,从它入手能看懂加载流程。
❓ 问答:乱码、插件、启动与内存
这一章集中回答最常见的几类问题。
| 问题 | 可能原因 | 解决办法 |
|---|---|---|
| 打开文件中文乱码 | 编码格式与实际不符 | 在【编码】菜单逐个切换 GBK / UTF-8 / UTF-8 BOM,状态栏会实时反馈;确认后可转存为新编码 |
| 换行符不对(整段挤成一行) | CRLF / LF 不一致 | 【编码】菜单下可转换为 Windows CR LF、Unix LF 或 Mac CR |
| 插件不生效 | 插件与当前版本不匹配,或没放进插件目录 | 检查插件编译时对应的主程序版本,确认导出文件在插件目录下 |
| 启动偏慢 | 最近文件列表过长、上次会话打开文件多 | 清理【文件】→ 最近文件列表,或减少会话恢复的文件数 |
| 内存占用高 | 打开了超大文档或多个文档 | 用大文件方式打开超大文件;不用的标签页用 Ctrl+W 关掉 |
另外几条性能建议:
- 复杂高亮语言(如含大量正则的规则)在超大文件中会拖慢滚动,必要时切到纯文本显示;
- 用 Alt+数字 折叠不看的代码块,减少渲染负担;
- 批量查找时把"跳过超过大小的文件"阈值调小,避免个别大文件拖慢整体搜索;
- 长期不用的标签页及时关闭,编辑器是按标签页管理文档内存的。
🤝 参与与学习
notepad-- 是完全开源的,欢迎提交 Issue 反馈问题、贡献代码、完善文档,或在 Windows / Linux / macOS / UOS 等不同环境上做兼容性测试。学习入口:
- 插件示例:src/plugin/helloworld/
- 插件加载机制:src/pluginmgr.cpp
- 语法配色主题:src/themes/
- 界面样式表:src/qss/
- 编辑器内核文档:src/qscint/doc/
- 版本变更记录:changelog.txt
【免费下载链接】notepad--一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。项目地址: https://gitcode.com/GitHub_Trending/no/notepad--
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考