Notepad--:从克隆仓库到Markdown预览,5步跑通这款跨平台编辑器
【免费下载链接】notepad--一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。项目地址: https://gitcode.com/GitHub_Trending/no/notepad--
Notepad--是一款面向Windows、Linux、macOS的轻量文本编辑器,内置Markdown预览,编辑文档时能看到渲染结果。读完这篇你能:编译并跑通这个编辑器,用右键菜单打开Markdown预览,并知道哪几步最容易卡住。

能力边界:多标签编辑、目录查找替换与文件对比
- 多标签多文件编辑,编辑区基于QScintilla(一个开源代码编辑器控件),支持C++、XML等语言语法高亮
- 在目录里查找:支持正则表达式、全词匹配、跳过隐藏文件,超过20MB的大文件默认跳过
- 对比能力:单文件对比、目录对比,还支持二进制文件对比
- Markdown预览:编辑区右键选"Markdown View",在独立窗口渲染,内容改动时预览自动刷新
- 不做什么:没有编译、调试这类IDE功能,也没有Git集成;插件体系刚起步(V1.21才初步支持插件开发)
上手路径:从克隆仓库到Markdown预览的5步
git clone https://gitcode.com/GitHub_Trending/no/notepad--- 安装Qt 5.15与CMake 3.16以上。CMakeLists.txt声明最低要求3.16,依赖Qt5的Core、Gui、Widgets、Concurrent、Network、PrintSupport、XmlPatterns共7个组件
cmake -Bbuild -DCMAKE_BUILD_TYPE=Release -DPLUGIN_EN=on -DCMAKE_PREFIX_PATH=<Qt5安装路径> .cmake --build build --config Release- 运行
build/NotePad--.exe(Linux下为build/NotePad--),打开一个.md文件,在编辑区右键 → "Markdown View"
Windows下也可以直接用仓库里的win.mk,make msvc会一次完成CMake配置、编译、windeployqt依赖拷贝和cpack打包。
预览为什么实时刷新:textChanged信号机制
预览的入口是右键菜单里的一项。首次点击时惰性创建预览窗口,并把编辑器的文本变化信号接到刷新函数:
m_markdownWin = new MarkdownView(this); connect(this, &ScintillaEditView::textChanged, this, &ScintillaEditView::on_updataMarkdown); // on_updataMarkdown 调用 viewMarkdown(text), // 内部即 ui.textEdit->setMarkdown(text)整条链路是信号驱动的:内容一变,预览窗口就重渲染,没有定时器轮询,空闲时不占CPU。渲染交给Qt内置的Markdown解析器(setMarkdown),不依赖第三方库。预览窗口是单实例的,关掉后再点菜单会重新创建。
踩坑速查:起不来、双击不开窗、找不到Qt
- 编译成功但exe起不来,报找不到Qt的DLL → 运行时依赖没有拷贝 → 构建后执行一次
windeployqt NotePad--.exe,仓库里的win.bat已包含这一步 - 双击文件不新开窗口,而是旧窗口弹到前面 → 这是单实例机制在起作用:新进程通过共享内存把文件路径转发给已有主进程 → 属预期行为,想真正开新实例先关闭旧进程
- CMake配置时报"Qt5 not found" → 没传CMAKE_PREFIX_PATH或指错了目录 → 补上
-DCMAKE_PREFIX_PATH=<Qt5安装路径>后重新配置
克隆仓库后,先打开src/main.cpp看单实例共享内存的建立过程,再在src/scintillaeditview.cpp中搜索"Markdown View",就能沿着菜单项追到预览窗口的完整链路。
【免费下载链接】notepad--一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。项目地址: https://gitcode.com/GitHub_Trending/no/notepad--
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考