[software development] 各位对 Notepad++ 的跨平台替代感兴趣吗?
Tofloor
poster avatar
BLumia
deepin
2026-03-01 14:45
Author

从我自己的角度而言,自从知道 Notepad++ 开始就有了一些与此软件相关的使用习惯和功能的依赖。包括【显示空白字符】(能显示出来 CRLF/LF,以及各种不可打印字符)、方便的文本编码识别与转换(UTF-8<->GB18030<->ShiftJIS等)、自动恢复上次会话的内容并自动恢复从未保存过的临时文档(临时记一些备忘)等,加上用它的话临时编辑一些配置文件就不需要启动那种一上来就加载一大堆插件的重型 IDE(也包括 vscode 与 zed)。

后续到了非 Windows 平台上就总是偶尔会“怀念”这些功能,发现好像很难看到类似替代,找过一些发现或多或少有一些我自己依赖的功能它没搬上去,或者有一些奇奇怪怪的槽点。比如:

  • Notepad Next:

    • 没有暗色主题,作为习惯暗色主题的用户,界面看着亮的太瞎眼
    • 没有编码转换功能
  • Notepad--:

    • 可能是功能搬的相对比较全的一个仿品,但是【实际不开源】且可能违反了 QScintilla 的 GPL 许可(看到的开源仓库均为旧版本,也确认了确实新版本是闭源)
    • 有一些比较影响使用的 bug(其实也是因为遇到了 bug 打算直接上手修才去翻的源码,然后注意到了上面的问题)
  • notepadqq:

    • 基于 CodeMirror(前端技术),且当前不再活跃维护
  • Textosaurus:

    • 基于 Scintilla 与 Qt,本身并未尝试尽可能还原 Notepad++ 的使用习惯,且当前不再活跃维护

甚至Notepad++本体也有一些槽点,每次更新都更的是一些有的没的,很少能感受到到底更了什么实质功能,真正实用的比如 golang kotlin qml 高亮从来都没见加过,使用自带的 Twilight 样式的话很多语言的高亮甚至会直接瞎眼到无法阅读(比如白底白字)或者完全失去高亮...

大概两年前有了这样的感受后我调研了一下相关的东西,看过 Scintilla 的接口设计后,发现如果搓这种轮子的话,会是是非常消耗精力的事情(几乎是堆工作量,技术含量没那么高)。今年年前刚好有空有机会试了试在比较高频率主动介入代码审核的情况下让 agent 来搓这种仿品,发现只要 codereview 做的到位,效果就意外的还可以。尽管由于这类工具的细碎功能很多,还是需要逐步加+验证,所以我目前也不是很确定我有没有动力把它做完。

于是发个帖子问下大家:

  1. 有 Notepad++ 跨平台替代的需求吗?如果有,主要关注什么/哪些功能?
  2. 你在使用哪些平台/系统?(如果 Linux 平台不是 deepin 的话也建议说下发行版名称)
  3. 假如提供打赏的话,有意愿打赏支持吗?(我有开爱发电和kofi,但前者其实目前没人打赏过倒是)

提问的目的是了解下这种工具的关注度,以便我决定是否应当继续把它搞完,至于现状的话,使用了Qt6+KDE Framework6进行实现,基于 Scintilla 第一方提供的 Qt 支持(非 QScintilla),目前做到了 Windows、macOS 和 Linux 三个平台的构建和基础功能可用,在 Windows 下对比文件的启动速度可以远超 NotepadNext (尤其是大文件),很多 Notepad++ 原版没添加的常用语言的高亮支持我也做了支持。下面也放一张图(deepin 25环境):

image.png

于是欢迎各位评论发表看法。感谢阅读至此!

免责:此项目是个人项目,与 deepin 官方无关。

Reply Favorite View the author
All Replies
2 / 2
To page
deepin-superuser
deepin
2026-03-02 09:46
#21

有 Notepad++ 跨平台替代的需求吗?如果有,主要关注什么/哪些功能?

有,除了你提到的那三点,个人还特别喜欢 Notepad++ 的搜索、替换框(特别是这个框切换文件还还可以保留、可以点击搜索也是在当前文本中搜索)

还有一点就是几乎所有类型文件都可以以文本方式打开

你在使用哪些平台/系统?(如果 Linux 平台不是 deepin 的话也建议说下发行版名称)

Win11,deepin 20.9

假如提供打赏的话,有意愿打赏支持吗?(我有开爱发电和kofi,但前者其实目前没人打赏过倒是)

意愿较低

Reply View the author
BLumia
deepin
2026-03-02 10:27
#22

@chmod700

感谢!下班后我试试看(

@寂静的羽夏

如果是为了自己做项目锻炼自己的话,也无妨。

显然不是。这种纯粹是堆积工作量的项目对自己基本不会有什么锻炼成分。其实这也是我不太想投入太多精力进去的原因。

KDE 其实有对应的文本编辑器,功能全面的 Kate 和轻量版的 KWrite ,这些基本上把所有功能都涵盖的

并没有。首先我也是 Kate 代码的贡献者,上面描述过的一部分相关需求在 Kate 中的实现其实也有我的代码。Kate 在恢复上次会话、显示不可打印字符这两方面均不能满足我的实际需求。在启动速度方面也不太理想(但这个还能接受,毕竟之前一直在用 Kate)。

@kero990

因为我不认为你的新项目就能超过notepad--或者next

现状而言部分方面是已经远超 Next 了。事实上给 NotepadNext 加暗色还挺简单的,但 Next 差的另一个主要功能是编码转换,以及慢的出奇的启动速度(大概是因为它启动时要初始化 Lua)。

至于 Notepad--,我也提到过了我一开始的想法就是去给它做贡献,但是,再次强调: Notepad--是闭源项目。所以我甚至不知道有什么和它做对比的意义。

我也不想重复造轮子,这也是为什么我两年前做了初步调研后决定不打算写这种东西,因为基本纯是堆积工作量。现在也是因为 LLM 发展才导致工作量可以大幅降低(尽管仍然需要主动做不少事情),于是才有了这个项目。

@deepin-superuser

有 Notepad++ 跨平台替代的需求吗?如果有,主要关注什么/哪些功能?

有,除了你提到的那三点,个人还特别喜欢 Notepad++ 的搜索、替换框(特别是这个框切换文件还还可以保留、可以点击搜索也是在当前文本中搜索)

感谢!这个目前也是有的,也是我自身的需求。

假如提供打赏的话,有意愿打赏支持吗?(我有开爱发电和kofi,但前者其实目前没人打赏过倒是)

意愿较低

完全可以理解 😂

Reply View the author
BLumia
deepin
2026-03-02 12:46
#23
chmod700

比如现在有这样一个文本,里面内容为:

/home/andy/桌面/g/grub2/grub-pc_2.12-9_amd64.deb
/home/andy/桌面/g/grub2/grub-efi_2.12-9_amd64.deb
/home/andy/桌面/g/gcc-14/libgomp1_14.2.0-19_amd64.deb
/home/andy/桌面/g/grub2/grub-common_2.12-9_amd64.deb
/home/andy/桌面/g/grub2/grub-pc-bin_2.12-9_amd64.deb
/home/andy/桌面/g/gcc-14/libgcc-s1_14.2.0-19_amd64.deb
/home/andy/桌面/g/grub2/grub2-common_2.12-9_amd64.deb
/home/andy/桌面/g/gcc-14/libatomic1_14.2.0-19_amd64.deb
/home/andy/桌面/g/gcc-14/libstdc++6_14.2.0-19_amd64.deb
/home/andy/桌面/g/gpm/libgpm2_1.20.7-11+b2_amd64.deb
/home/andy/桌面/g/glibc/libc6_2.41-12+deb13u1_amd64.deb

我想在某个文本中删除指定字符之前(/符号)的字符,在notepad++中我可以这样实现:呼出替换,选择正则替换,查找目标一栏输入输入:^.*/ 替换为一栏留空

图片.png

那么它就变成了这样:

grub-pc_2.12-9_amd64.deb
grub-efi_2.12-9_amd64.deb
libgomp1_14.2.0-19_amd64.deb
grub-common_2.12-9_amd64.deb
grub-pc-bin_2.12-9_amd64.deb
libgcc-s1_14.2.0-19_amd64.deb
grub2-common_2.12-9_amd64.deb
libatomic1_14.2.0-19_amd64.deb
libstdc++6_14.2.0-19_amd64.deb
libgpm2_1.20.7-11+b2_amd64.deb
libc6_2.41-12+deb13u1_amd64.deb

这样可以不用管/符号之前的内容,每行是不是一样的,都可以被删掉。

现在我再进一步,删掉_符号后面的内容,在notepad++中我可以这样实现:呼出替换功能,查找目标一栏输入 _.*?$ 替换为一栏留空

图片.png

它就变成了这样:

grub-pc
grub-efi
libgomp1
grub-common
grub-pc-bin
libgcc-s1
grub2-common
libatomic1
libstdc++6
libgpm2
libc6

我想在每行行首插入字符,我可以这样实现,呼出替换功能,查找目标一栏输入^,替换为一栏输入***

图片.png

它就变成这样:

***grub-pc
***grub-efi
***libgomp1
***grub-common
***grub-pc-bin
***libgcc-s1
***grub2-common
***libatomic1
***libstdc++6
***libgpm2
***libc6

我想在每行行尾插入&&&字符,我这样:查找目标一栏输入$,替换为一栏输入&&&

图片.png

它就变成了这样:

***grub-pc&&&
***grub-efi&&&
***libgomp1&&&
***grub-common&&&
***grub-pc-bin&&&
***libgcc-s1&&&
***grub2-common&&&
***libatomic1&&&
***libstdc++6&&&
***libgpm2&&&
***libc6&&&

a.mp4.zip

测试了下,看上去符合要求。描述的几个都试了,只录了头一个。

Reply View the author
chmod700
deepin
2026-03-02 15:44
#24
BLumia

a.mp4.zip

测试了下,看上去符合要求。描述的几个都试了,只录了头一个。

Notepad++我认为不了替换的就是正则替换功能,其他的功能,其他文本编辑器都大同小异,只要实现了它的正则替换功能对我来说就够了,就不用每次替换一堆文本还要去windows了。当然了它的正则替换功能还有很多其他语法,有的我也不会,比如替换两个字符中间的内容,像是我发的这个文本中,如何批量正则替换/和_字符中间的文本我就不知道怎么写表达式。这个规则其实也是很常用

Reply View the author
BLumia
deepin
2026-03-02 17:05
#25
chmod700

Notepad++我认为不了替换的就是正则替换功能,其他的功能,其他文本编辑器都大同小异,只要实现了它的正则替换功能对我来说就够了,就不用每次替换一堆文本还要去windows了。当然了它的正则替换功能还有很多其他语法,有的我也不会,比如替换两个字符中间的内容,像是我发的这个文本中,如何批量正则替换/和_字符中间的文本我就不知道怎么写表达式。这个规则其实也是很常用

其实你描述的这个用例,不只我目前完成度的 NPP 仿品能做到,Visual Studio Code、Kate 之类也能做到,或者 sed / awk 也能做到。可能算痒点而非痛点,因此需要切回 Windows 还是不至于的。

我自己到现在还在用纯文本编辑器就是单纯图个方便,省的每次启编辑器只为了改个配置文件都很重型,导致各种LSP甚至LLM插件都跟着起来了...

Reply View the author
chmod700
deepin
2026-03-02 21:50
#26
BLumia

其实你描述的这个用例,不只我目前完成度的 NPP 仿品能做到,Visual Studio Code、Kate 之类也能做到,或者 sed / awk 也能做到。可能算痒点而非痛点,因此需要切回 Windows 还是不至于的。

我自己到现在还在用纯文本编辑器就是单纯图个方便,省的每次启编辑器只为了改个配置文件都很重型,导致各种LSP甚至LLM插件都跟着起来了...

对了,notepad++还有个替换功能不知道linux文本编辑器有没有,那就是同时打开多个文本,可以一次性将打开的全部文本中的指定字符替换成其他的。

Reply View the author
BLumia
deepin
2026-03-02 22:59
#27
chmod700

对了,notepad++还有个替换功能不知道linux文本编辑器有没有,那就是同时打开多个文本,可以一次性将打开的全部文本中的指定字符替换成其他的。

Visual Studio Code 就可以的。

Reply View the author
穿西装的万斯在统亻言
deepin
Backbone of ecological co-construction group
2026-03-03 20:18
#28

KDE的框架?我可能不太适合,因为安装估计得拉一大堆依赖下来到系统里面。

Reply View the author
BLumia
deepin
2026-03-04 10:02
#29
穿西装的万斯在统亻言

KDE的框架?我可能不太适合,因为安装估计得拉一大堆依赖下来到系统里面。

不至于。因为 KWin 本身也会依赖,所以实际多出来的依赖没几个。

Reply View the author
132******93
deepin
2026-03-06 09:14
#30

还是需要的。最好是支持多标签的形式

Reply View the author
BLumia
deepin
a day ago
#31
132******93

还是需要的。最好是支持多标签的形式

现在就是多标签支持了,可以看帖子附的截图。

Reply View the author
2 / 2
To page