news 2026/10/16 2:48:59

Notepad-- 上手指南:如何5分钟救回乱码、如何整目录批量替换、如何一眼看清两个文件的差异

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Notepad-- 上手指南:如何5分钟救回乱码、如何整目录批量替换、如何一眼看清两个文件的差异

Notepad-- 上手指南:如何5分钟救回乱码、如何整目录批量替换、如何一眼看清两个文件的差异

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

Notepad-- 是一款免费开源、支持 Windows / Linux / macOS 的跨平台文本编辑器,围绕中文用户的高频痛点做了三件事:编码智能识别与转换、目录级批量查找替换、文件和目录对比,另附 tailf 式实时日志跟踪。读完这篇指南,你能独立搞定四件高频操作:把乱码文件救回来、全项目批量改一个变量名、看清两份代码的差异、不切终端实时盯住服务日志。

5分钟装好并完成首次设置

最省事的路线是拿预编译包:到项目发布页下载对应平台的安装包——Windows 是 NSIS 安装程序,Linux 提供 deb/rpm 包,macOS 是 dmg 包,装完打开即用,全程不到 5 分钟。Arch 系用户也可以用 yay 从 AUR 直接装:

yay -S notepad---git

通过 AUR 拉取 notepad---git 包并安装,免去本地编译。

只有要改代码或参与开发时才需要源码编译。以 Ubuntu/Debian 为例,README_EN.md 给出的依赖不多,Qt5 之外没有别的库:

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

把项目源码拉取到本地目录。

sudo apt-get install g++ make cmake qtbase5-dev qt5-qmake qtbase5-dev-tools libqt5printsupport5 libqt5xmlpatterns5-dev

一次装齐编译器、CMake 和 Qt5 开发库,CMakeLists.txt 里声明的 Core、Gui、Widgets、Concurrent、Network、PrintSupport、XmlPatterns 七个模块都能覆盖。

cmake -B build -DCMAKE_BUILD_TYPE=Release

以 Release 模式生成构建配置。

cd build && make -j && sudo make install

用全部 CPU 核心并行编译,然后安装进系统,装完后应用菜单里就能看到 Notepad-- 图标。

首次启动花两三分钟调三处,后面所有场景都会更顺:

  1. 看状态栏右下角的编码区。日常项目用 UTF-8,处理老 Windows 中文文件时随时切 GB18030,状态栏会实时标出当前采用的编码(如 UTF-8-BOM),不用你瞎猜。
  2. 到【设置】里挑等宽字体。默认字号是 12,作者根据用户反馈从 14 调下来的,嫌大嫌小自己改。
  3. 进【设置】→【快捷键】,把不习惯的组合改掉,已经设置的快捷键也能取消。

把乱码文件救回来

从 Windows 拷到 Linux 的中文文件,经常显示成一堆方块和"涓枃"这种鬼画符。文件本身没坏,只是编码对不上,三步就能救回来:

  1. 打开乱码文件,先看状态栏显示的当前编码。
  2. 进【编码】菜单,换一种编码重新解读,GBK、GB18030、BIG5 这些老编码都能覆盖,直到中文正常显示。
  3. 确认无误后,走【编码】→【转换为...】,选定目标编码保存。

关键点:重新解读只是"换个方式读",文件内容没变;只有"转换为"才真正改写文件。不转换的话,下次打开还是乱码。转换逻辑实现在 src/Encode.cpp,打开时还会先智能分析内容推测编码,大多数情况你甚至不用手动选。

跨整个目录批量改一个变量名

一个变量名要在全项目改名、一行配置要批量更新,逐文件打开替换得折腾半天。用【查找】→【在目录查找】,把整棵目录树一次性处理完:

  1. 点"选择"按钮,指定要搜索的目标文件夹。
  2. 在"文件类型"框填过滤条件,比如*.cpp,*.h,只处理你要的文件。
  3. 查找目标填旧变量名,替换为填新名字。
  4. 勾上"匹配大小写"(C/C++ 变量名区分大小写),点"在文件中替换"。
  5. 底部结果区会列出每个命中文件、行号和具体内容,改没改、改在哪一目了然。

关键点:改变量名务必勾"全词匹配",否则查foo会连foobar一起误伤。右侧还有四个保护开关:跳过子目录、跳过隐藏文件、跳过二进制文件、跳过超过 20MB 的大文件,默认勾着的不用动;要匹配\d+这类模式时必须切到"正则表达式"。批量查找的实现可以看 src/batchfindreplace.cpp。

两个文件的差异一眼看清

代码合并前要确认新旧版本到底改了什么,左右各开一个窗口逐行比对,费眼还容易漏。打开两份文件后选【对比】→【文件对比】即可(目录对比也支持,还能递归处理):

  1. 差异直接用颜色标出,右侧还有差异图(Diff 小地图)快速定位。
  2. 顶部工具栏的"上一个 / 下一个"在差异点之间跳转,还有"放大 / 缩小""交换"左右文件等按钮。
  3. 底部状态栏会标出当前共有多少个不同块,比如截图里显示"当前有 14 个不同块",先看这个数字就能估算工作量。
  4. 左右两个编辑区各自带编码下拉框,对比前先确认两边编码一致。

![Notepad-- 文件对比视图并排显示差异块](https://raw.gitcode.com/GitHub_Trending/no/notepad--/raw/4510896f716e71db9f4b25ed8559b9c39a4f23d4/pngshow/macos/2023-02-26 11.45.48.png?utm_source=gitcode_repo_files)

关键点:如果两边编码不一致(一边 UTF-8 一边 GB18030),差异结果基本不可信,先去【编码】菜单对齐再比。

不切终端也能盯住服务日志

服务跑起来后,日志每几秒刷一批,来回切终端很打断节奏。Notepad-- 的 Tail-f 按钮把tail -f搬进了编辑器:

  1. 打开日志文件,超过阈值的大文件会弹出提示,选"大文件模式"打开。
  2. 大文件模式下编辑器按块加载内容,只读可见区域附近的数据,几百 MB 的日志也不会把内存吃满。
  3. 点工具栏的 Tail-f 按钮,编辑器自动跳到文件末尾。
  4. 之后新增内容实时刷出来,效果跟终端里的tail -f基本一致。

![Notepad-- 大文件分块加载代码与目录列表视图](https://raw.gitcode.com/GitHub_Trending/no/notepad--/raw/4510896f716e71db9f4b25ed8559b9c39a4f23d4/pngshow/macos/2023-10-05 18.05.28.png?utm_source=gitcode_repo_files)

关键点:打开巨型日志时别选"完整加载"。大文件分块缓存的逻辑在 src/cceditor/filemanager.cpp,小块大小由常量ONE_BLOCK_CHARS_NUM控制(默认 10240 字符),经常盯大日志可以按需调整。

常见问题:现象/解法速查

  • 现象:Linux 下启动提示缺少 Qt 库。解法:先装 Qt5 运行时sudo apt-get install libqt5core5a libqt5gui5 libqt5widgets5,装完即可正常启动。

  • 现象:中文显示乱码。解法:到【编码】菜单切换编码尝试,UTF-8 和 GB18030 覆盖绝大多数场景;状态栏实时显示当前文件编码,据此判断选哪个。

  • 现象:正则查找匹配不到\d+、\w+。解法:确认勾选了"正则表达式",否则这些模式只被当普通文本处理。

  • 现象:大文件打开缓慢、占用高。解法:选大文件模式打开,只加载可见区域;小文件默认直接全量读入,不用纠结。

  • 现象:插件无法加载。解法:核对插件的 32/64 位是否与系统架构匹配,且文件要放在程序目录下的plugin子目录里(win.bat 里的部署脚本就是往plugin目录拷贝的)。

进阶功能速览

想做的事去哪里做一句说明
语法高亮【语言】菜单选语言内置 40 多种语言 lexer:C/C++、Java、Python、HTML、JSON、Shell、SQL、Markdown 等,清单见 src/qscint/src/
换主题【设置】→【主题】18 套内置主题,深色有 Bespin、Monokai、Obsidian,浅色有 Light Blue、Misty Rose,配置目录 src/themes/ 里复制一套改色值就能加自己的
自定义语言风格【设置】→【语言样式定义】支持自定义编程语言并添加自己的关键词(changelog 1.17 起)
跳函数定义侧边栏"函数列表"把代码结构解析成树,点函数名跳转
书签快捷键 F2支持 8 种书签功能,F2 切换(changelog 1.18)
行编辑【编辑】→【行编辑】复制/删除重复行、上下移行、排序等 16 种操作
装插件.dll/.so放进plugin目录重启后在【插件】菜单启用,自己写插件参考 src/plugin/helloworld/ 示例

Notepad-- 以 GPLv3 协议开源,老版本创建的文件和配置在新版里照常可用,升级几乎没有迁移成本。遇到 bug 可以直接在仓库提交 Issue,也欢迎提交 Pull Request 参与代码贡献——你的每一条反馈都会让这个编辑器更好用。

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

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

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

Python自动巡检脚本:定时抓取设备状态

一、痛点背景:从一次真实的生产事故说起Python自动巡检脚本:定时抓取设备状态这个问题,在FAB里不是一天两天了。我见过太多工程师踩坑:要么是方法用错导致数据误判,要么是工具选型失误导致项目延期,要么是流…

作者头像 李华