为什么你的终端还缺一个好用的 Markdown 预览器?leaf 终端 TUI 预览器完整体验与选型指南
【免费下载链接】leafTerminal Markdown previewer — GUI-like experience.项目地址: https://gitcode.com/gh_mirrors/leaf37/leaf
leaf是一款开源的终端 Markdown 预览器(Terminal Markdown Previewer),它让你在纯终端里获得接近 GUI 的阅读体验:语法高亮、LaTeX 公式渲染、Mermaid 图表、目录侧边栏、模糊文件选择器、实时监听模式一应俱全。无需打开浏览器或编辑器插件,一条命令leaf 文件.md即可渲染。本文带你完整体验 leaf 终端 TUI 预览器的核心功能,并给出安装与选型建议。
为什么终端需要一个 Markdown 预览器?
很多开发者写文档、记笔记、看 AI 输出时,都要在「编辑器源码」和「浏览器渲染页」之间来回切换。leaf 的思路是:把渲染做进终端里,用精心设计的 TUI(Text User Interface)替代浏览器,带来这些好处:
- ⚡零依赖启动:单二进制文件,毫秒级打开,适合 SSH 远程场景
- 🖥️专注阅读:无浏览器标签页干扰,键盘优先操作
- 🔄编辑预览同屏:Watch 模式下边改边看,滚动位置自动保留
- 🤖AI 工作流友好:支持 stdin 管道,
claude "..." | leaf直接渲染模型输出
快速上手:60 秒感受 leaf 预览效果
丰富的 Markdown 渲染能力
表格使用 Unicode 边框绘制,支持左/中/右对齐,单元格内可混排行内代码和公式,并自动适配终端宽度:
此外还支持 frontmatter 键值表、多级嵌套列表(不同层级用不同 Unicode 符号和颜色)、多级引用块、GitHub 风格 Alert 提示框、任务列表复选框和==高亮文本==。
LaTeX 公式与 Mermaid 图表:终端里很少见的能力
大多数终端工具直接忽略公式,而 leaf 会把$E = mc^2$这类行内公式、$$...$$块级公式转换成 Unicode 符号渲染(支持分式、上下标、希腊字母、根号):
更惊艳的是Mermaid 图表会被渲染成 ASCII 框线图——流程图、时序图、饼图直接画在终端里,不需要任何浏览器或图片查看器:
代码块语法高亮
围栏代码块带装饰边框、语言标签和行号,基于 syntect 支持40+ 种语言(Rust、Python、JavaScript、Go、C/C++、JSON、TOML 等),并随终端宽度智能换行:
GUI 级交互体验:TUI 操作亮点
目录侧边栏 + 全文搜索
按t打开目录侧边栏,leaf 会自动归一化标题层级并高亮当前可见章节;1-9数字键可直达对应标题。按/或Ctrl+F全文搜索,所有匹配高亮显示,n/N在结果间跳转:
模糊文件选择器:不用离开终端找文件
直接运行leaf(不带参数)打开模糊查找器输入文件名关键字;Shift+P打开经典目录浏览器逐级翻找。选中后自动渲染,还可叠加--watch直接进入监听模式:
Watch 实时预览模式
leaf --watch notes.md开启监听后,文件一保存就自动重载,状态栏闪现 "reloaded" 提示且滚动位置不变。写文档、跑 AI 生成笔记时非常顺手:
官方推荐的 AI 工作流:终端 1 里aichat "..." > notes.md生成内容,终端 2 里leaf --watch notes.md实时看渲染结果。
一键打开编辑器修改
按Ctrl+E用默认编辑器打开当前文件,改完返回 leaf 自动重载。支持{$line}占位符让编辑器直接定位到当前视口中间行(如nvim +{$line}),也支持鼠标Ctrl+点击打开链接、双击复制链接或代码块:
主题选择器:4 套内置主题 + 自定义
按Shift+T打开主题选择器,边翻边实时预览,每套主题同时作用于 UI、Markdown 元素和语法高亮。内置 Arctic、Forest、Ocean Dark、Solarized Dark 四套;也可以写一个 TOML 文件继承任意内置主题并覆盖指定颜色,完整示例见 gruvbox.toml:
安装与常用命令
macOS / Linux / Termux
curl -fsSL https://raw.githubusercontent.com/RivoLink/leaf/main/scripts/install.sh | shWindows(PowerShell)
irm https://raw.githubusercontent.com/RivoLink/leaf/main/scripts/install.ps1 | iex也支持npm install -g @rivolink/leaf、brew install leaf-markdown-viewer、cargo install leaf-markdown-viewer、Scoop 等多种方式。装完执行leaf --version验证,之后可用leaf --update一键自检 SHA256 并升级。
最高频的几条命令:
leaf TESTING.md # 打开 Markdown 文件 leaf # 打开模糊 Markdown 选择器 leaf -w notes.md # 打开并监听文件 leaf --theme forest a.md # 指定主题 cat notes.md | leaf # 从 stdin 渲染 leaf --inline README.md # 非交互输出到 stdout(可作 fzf 预览)所有参数可用leaf --auto-complete为 bash / zsh / fish / Nushell / PowerShell 开启 Tab 补全。
配置指南:一个 config.toml 搞定习惯
运行leaf --config自动生成带注释的配置文件,支持主题、默认编辑器、监听模式、内容最大宽度、文件历史长度等:
theme = "ocean" # arctic / forest / ocean / solarized-dark / 自定义主题文件 editor = "nvim" # Ctrl+E 打开的编辑器,可用 {$line} 定位行号 watch = false # 打开文件时是否默认监听 extras = ["txt", "rs"] # 选择器中额外显示的文件类型完整注释版参考 config.toml。命令行参数优先级永远高于配置文件,临时切换无需改文件。
选型建议:leaf 适合谁?
| 你的场景 | leaf 是否合适 |
|---|---|
| 在 SSH / 纯终端环境读文档 | ✅ 首选,单文件免依赖 |
| 写 Markdown 想要边写边看 | ✅ Watch 模式 +{$line}编辑器定位 |
| 文档含 LaTeX / Mermaid | ✅ 终端里罕见的双料支持 |
| 需要 HTML/CSS 自定义排版 | ⚠️ 建议用浏览器类预览工具 |
| 团队协作在线编辑 | ⚠️ leaf 是只读预览器,编辑交给你的编辑器 |
技术层面,leaf 用 Rust 编写、基于 ratatui 构建 TUI,模块划分清晰:Markdown 解析渲染在 src/markdown/,界面渲染在 src/render/,交互事件循环在 src/runtime/,主题体系在 src/theme/,架构说明见 ARCHITECTURE.md,更新历史见 CHANGELOG.md,更多功能演示图与说明见 demo/README.md。
总结
如果你想在终端里获得一个开箱即用、GUI 级体验的 Markdown 预览器,leaf 值得一试:
- 📖 完整渲染:表格、代码高亮、LaTeX 公式、Mermaid 图表、frontmatter
- 🎮 键盘鼠标皆可:目录跳转、全文搜索、代码块复制、链接直达
- 🔄 Watch 模式 + stdin 管道,无缝融入写作与 AI 工作流
- 🎨 4 套内置主题 + TOML 自定义配色
一条命令leaf 你的文档.md,把浏览器关掉吧。
【免费下载链接】leafTerminal Markdown previewer — GUI-like experience.项目地址: https://gitcode.com/gh_mirrors/leaf37/leaf
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考