尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Notepad-- 文本编辑器完整使用指南:跨平台编码处理、大文本与文件对比一次讲透

Notepad-- 文本编辑器完整使用指南:跨平台编码处理、大文本与文件对比一次讲透 Notepad-- 文本编辑器完整使用指南跨平台编码处理、大文本与文件对比一次讲透【免费下载链接】notepad--一个支持windows/linux/mac的文本编辑器目标是做中国人自己的编辑器来自中国。项目地址: https://gitcode.com/GitHub_Trending/no/notepad--Notepad-- 是一款由中国开发者用 C 和 Qt 编写的轻量级文本编辑器原生支持 Windows、Linux 和 macOS 三个平台核心能力集中在中文编码自动检测与转换、超大文本编辑、目录级批量查找替换以及文件/目录对比。如果你平时要处理 GBK 老代码、几百 MB 的日志或者需要快速比对两个版本的文件差异这套工具链比通用编辑器更直接。下面按先解决编码、再上量、后对比、最后定制的顺序把每个环节用到位。从乱码开始中文编码的检测与转换国产编辑器最硬的需求往往是打开一个十年前的 GBK 项目不报无法显示字符。Notepad-- 的编码体系围绕一个静态类实现所有检测、识别、转换都收敛在这里打开文件时先走Encode::DetectEncode()做字节级探测再结合 BOM、纯 ASCII 判断等辅助路径确定编码CheckUnicodeWithoutBOM、CheckTextIsAllAscii核心实现在 src/Encode.cpp确定编码后通过tranGbkToUNICODE()、tranUtf8ToUNICODE()等函数统一转成内部文本编辑完成再按目标编码写回菜单编码下可以手动指定 GB2312/GBK、UTF-8、Unicode 等格式重新解释文件状态栏右下角实时显示当前编码与换行符Windows 用 CRLF、Unix 用 LF程序会按系统自动处理。mac 上的实际效果大致是这样多标签打开 .ts 语言文件底部显示编码: GB2312(简体中文)切文件时编码栏跟随变化不需要手动切换![Notepad-- 文本编辑器 macOS 主界面多标签编辑区与中文编码状态栏](https://raw.gitcode.com/GitHub_Trending/no/notepad--/raw/4510896f716e71db9f4b25ed8559b9c39a4f23d4/pngshow/macos/2023-10-05 18.04.17.png?utm_sourcegitcode_repo_files)日常建议拿到来源不明的中文文件先别改内容切一遍编码菜单确认能正确显示再决定转成什么格式保存——这一步能避免二次编码污染。处理大文本与批量修改打开、盯着改、批量换大文件和日志超大文本提供大文本/超大文本两种打开模式大文本模式下保留行号显示配合分块加载避免一次性载入内存日志场景支持 tailf 式自动刷新滚动盯着tail效果的界面就不用同时开终端了二进制/文本类型自动探测误开二进制文件会提示而不是直接渲染乱码。批量查找替换按目录干活单文件内的 CtrlF/CtrlH 之外真正提效的是在目录查找实现位于 src/batchfindreplace.cpp。它的对话框比单文件查找多出一整组控制项指定目标目录 文件类型过滤如*.cpp, *.ui普通/扩展/正则三种查找模式可选全词匹配、大小写匹配跳过子目录、隐藏文件、二进制文件、超过指定 MB 的文件四项独立开关结果按文件 → 行号 内容两级列出点击直接跳转。下面是 Windows 下实际跑在 161 个文件里的批量查找结果989 处命中底部结果树展开到单个文件的每一行同一个对话框用于 Qt 工程 .ui 文件的目录级检索左侧高亮命中的 XML 内容右侧同步显示命中分布行级批量编辑选中多行后走编辑 → 行编辑可以一次完成复制当前行、删除重复行、合并行、上下移、移动空行、按大小写升/降序排列等 16 种操作源码在 src/columnedit.cpp处理配置项列表、排序 CSV 字段时比手写脚本快文件与目录对比这个编辑器自带 diff 工具对比功能是 Notepad-- 里使用率很高的一块菜单对比对应实现集中在 src/CmpareMode.cpp。它支持四种对比维度对比对象说明典型场景文件 vs 文件双栏并排差异行高亮可选忽略空白/空行升级前后同一模块比对目录 vs 目录递归比对支持按扩展名过滤发版目录与源码树核对二进制 vs 二进制十六进制视图逐字节比对配置文件、打包产物排查剪贴板 vs 剪贴板直接粘贴两段内容对比临时片段快速核对几个实用细节对比前不需要先选定文件路径可以直接从编辑器里已打开的文档发起对比差异可以用图形块视图展示连续差异聚合成色块一眼看出改动分布忽略空行、行匹配相似度阈值默认 50%都可调处理格式化工具产生的噪音 diff 时很有用对比完可以只保留差异快速提炼出真正变更的部分。mac 端运行状态顺带可以看到 GPL v3 许可声明与版本信息的关于弹窗![Notepad-- macOS 文件对比界面与版本信息关于对话框](https://raw.gitcode.com/GitHub_Trending/no/notepad--/raw/4510896f716e71db9f4b25ed8559b9c39a4f23d4/pngshow/macos/2023-12-23 14.31.45.png?utm_sourcegitcode_repo_files)主题、快捷键与插件用到深处再定制主题INI 文件直接改内置 16 套主题位于 src/themes/每一套下按语言分文件cpp.ini、python.ini、AllGlobal.ini等格式就是普通的键值对[Global Styles] defaultfore:#F8F8F2,back:#272822改完保存在设置 主题切换即生效不需要重启。想做团队统一配色时直接把整个主题目录拷到对方机器即可。快捷键可配置所有快捷键都能改、能取消管理界面在 src/shortcutkeyeditwin.cpp修改后随配置持久化。mac 上Ctrl键位习惯与 Windows 不一致的用户重点调查找/替换/书签这一组。插件两个 C 入口函数Notepad-- 的插件机制刻意做得很薄API 定义见 src/nddpluginapi.h官方示例在 src/plugin/helloworld/。一个插件本质上是一个动态库只需导出两个函数NDD_EXPORT bool NDD_PROC_IDENTIFY(NDD_PROC_DATA* pProcData); // 声明插件名、版本、菜单类型 NDD_EXPORT int NDD_PROC_MAIN(QWidget*, const QString, ...); // 点击菜单项时的入口入口参数里带了一个getCurEdit回调随时取当前编辑框的QsciScintilla*指针——也就是说插件拿到的是编辑器内核句柄操作文本、选区、样式都是直接调用 Scintilla API。注意NddPluginApi类注释里特别强调了 ABI 兼容性约束已有函数不能删改只能往后追加。从源码构建仓库用 qmake 工程src/RealCompare.pro与 CMake 双构建CMakeLists.txt依赖 Qt 5.15编辑器内核是内置的 QScintilla/Scintillasrc/qscint/。macOS 上克隆后在src目录执行qmake make即可Windows 侧参考 win.mk 脚本。第三方依赖只有 QScintilla、boost regex 和 NSIS 打包清单见 THIRDPARTY.md。按工作流选功能三句话总结处理中文老项目、跨平台迁移文件 → 重点用编码检测与手动转换先确认显示再保存日志、超大代码、跨文件改词 → 大文本打开 目录级批量查找替换 行编辑三个功能串起来基本不用离开编辑器版本核对、产物排查 → 文件/目录/二进制三层对比配合只保留差异快速定位变更。编辑器市场里轻量级产品很多Notepad-- 的差异化恰恰在于把中文场景下真正高频的三件事——编码、批量、对比——做进了主界面而不是插件。把它当主力日常工具前建议先花十分钟把快捷键和一套顺手的主题定下来后续所有操作都会变快。【免费下载链接】notepad--一个支持windows/linux/mac的文本编辑器目标是做中国人自己的编辑器来自中国。项目地址: https://gitcode.com/GitHub_Trending/no/notepad--创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表