markdownviewer++是notepad++唯一稳定可用的markdown实时预览插件,基于markdig引擎和webview2,支持gfm全特性、同步滚动与css自定义,需手动安装x64版本并满足已保存、.md后缀、语言设为markdown三前提。

直接用 MarkdownViewer++,别折腾 NppMarkdown 或浏览器手动刷新——后者在 64 位 Notepad++ 上基本不可用,且不支持同步滚动和 CSS 自定义。
为什么首选 MarkdownViewer++ 而不是其他插件
它用的是 Markdig 渲染引擎,严格遵循 CommonMark 0.28 标准,预览效果和 GitHub、Typora 等主流平台高度一致。更重要的是,它不是“点一下弹个网页”的半吊子方案,而是真正嵌入 Notepad++ 的右侧面板,编辑器与预览区共享同一滚动位置,长文档写到第 50 行,预览自动对齐到对应标题或段落。
常见错误现象包括:NppMarkdown 在 64 位 Notepad++ 上加载失败、点击 preview 按钮没反应、勾选 live preview 后仍需手动点刷新——这些基本都是架构不匹配或渲染线程卡死导致的,换 MarkdownViewer++ 可绕过全部。
- 仅支持 x64 架构的 Notepad++?必须下载
MarkdownViewerPlusPlus-0.8.2-x64.zip这类带x64后缀的版本 - 插件目录路径必须是
Notepad++\plugins\,不是plugins\_admin或子文件夹 - 安装后不重启 Notepad++,图标不会出现,菜单也不会加载
三步启用实时预览(无脑照做版)
第一步:去 GitHub Releases 页面下载最新 DLL 文件
地址是 https://github.com/nea/MarkdownViewerPlusPlus/releases,找带 x64 的 zip 包,解压出 MarkdownViewerPlusPlus.dll。
第二步:复制到插件目录并重启
把 DLL 放进 Notepad++\plugins\(不是 plugins\NppMarkdown 这类已有文件夹),然后彻底关闭 Notepad++ 再重开。
Convert Chinese patent PDFs/DOCX/DOCs to structured Markdown. Supports patent publications (A/B/U) and office action documents (审查意见通知书/驳回决定/复审决定书/无效宣告请求审查决定书). Uses MinerU for high-quality OCR text extraction (falls back to Tesseract), Python scripts for
第三步:打开预览面板
新建或打开一个 .md 文件,按快捷键 Ctrl+Shift+M,或点工具栏那个 Markdown 图标,右侧立刻出现渲染面板。输入任意 # 标题 或 ```python,右边实时变样。
- 如果没反应,检查状态栏是否显示
Markdown语言模式(顶部菜单 → 语言 → Markdown) - 若仍无效,尝试右键编辑区 → “以 UTF-8 编码重新加载”,避免 BOM 或编码错乱干扰解析
- 默认只识别
.md,如需支持.markdown或.txt,进插件菜单 →MarkdownViewer++ → Options → File extensions添加
导出 HTML/PDF 前必调的两个选项
导出功能藏得深,但非常实用。点击插件菜单 → MarkdownViewer++ → Export to HTML 或 Export to PDF 即可生成文件,但效果取决于这两个设置:
-
Use custom CSS:勾选后,它会读取%APPDATA%\Notepad++\plugins\Config\MarkdownViewerPlusPlus\style.css,你可以改字体、代码块背景色、标题间距等,导出的 HTML/PDF 全部生效 -
Include TOC in exported HTML:不勾选的话,[TOC]语法不会被渲染为目录;勾选后,只要源文件里写了[TOC],导出 HTML 就自动带锚点导航
注意:PDF 导出依赖系统已安装的打印驱动,Windows 默认用 Microsoft Print to PDF,无需额外装 wkhtmltopdf —— 但如果你在导出时卡住几秒没响应,大概率是打印机后台服务暂停了,重启 Print Spooler 服务即可。
最常被忽略的一点:预览面板默认宽度固定,当 Markdown 文档含超长代码行或表格时,右侧会横向滚动,但编辑器左侧不会同步。这不是 bug,是 Scintilla 组件对宽内容的默认处理方式。解决办法只有两个——要么在 CSS 里给 pre code 加 white-space: pre-wrap,要么手动缩窄预览面板宽度触发自动换行。后者更快,拖一下右边界就行。










