OXY2DEV/markview.nvim · 上手攻略

  • 仓库:OXY2DEV/markview.nvim
  • 链接:https://github.com/OXY2DEV/markview.nvim
  • 分类:academic-writing
  • 作者:Tom
  • 更新:2026-08-19

是什么

markview.nvim 是一款专为 Neovim 打造的所见即所得富文本预览插件,支持 Markdown、HTML、LaTeX(数学公式)、Typst、AsciiDoc 五种格式的实时渲染。与传统外部预览工具不同,它直接在 Neovim 内部完成渲染,支持混合编辑模式(编辑+预览同步)和分屏预览模式

核心定位是"hackable"——几乎所有渲染行为都可以通过配置覆盖或替换,适合对预览效果有定制需求的高级用户。动态高亮组自动跟随 colorscheme 变化,支持 786 种 HTML 实体名称、1920 个 GitHub emoji 简写、2056 个 LaTeX 数学符号定义。

⚠️ 注意:该插件推荐不要懒加载lazy=false),且应在 colorscheme 加载之后再初始化,否则高亮组可能异常。

解决什么问题

  • 无需外部浏览器预览:传统方案需要浏览器或外部工具;markview.nvim 在 Neovim 内直接渲染
  • 混合编辑:Splitview 模式可边写边看渲染效果;Hybrid 模式可编辑时实时更新对应区块渲染
  • 学术写作:内置 LaTeX 数学公式、Typst 完整支持,Neovim 原生环境无需切换工具
  • 高度可定制:换行模式、callout 样式、语法高亮几乎全部可配置
  • Treesitter 集成:与主流语法高亮方案无缝配合,支持 treesitter 注入扩展

快速安装

依赖前提

  • Neovim ≥ 0.10.3(必需)
  • Tree-sitter 解析器(需手动安装):
:TSInstall markdown markdown_inline html latex typst yaml

⚠️ Windows 用户如遇 LaTeX 解析器问题,可能需要额外安装 tree-sitter CLI。

  • Tree-sitter 兼容 colorscheme(推荐任意 treesitter-based 主题)
  • Nerd Fonts(推荐安装,否则部分图标无法显示)
  • mini.icons 或 nvim-web-devicons(可选,用于文件图标)

使用 uv 安装

uv pip install markview.nvim
# 或 luarocks(版本可能稍落后)
:Rocks install markview.nvim

插件管理器安装(lazy=false 是关键)

-- lazy.nvim(不要 lazy 加载!)
return {
  "OXY2DEV/markview.nvim",
  lazy = false,
  -- 可选:blink.cmp 补全支持
  -- dependencies = { "saghen/blink.cmp" },
}
" packer.nvim
Plug 'OXY2DEV/markview.nvim'

初始化配置(init.lua)

-- 确保 colorscheme 在 markview 之前加载
-- vim.cmd.colorscheme('tokyonight')  -- 你的主题

require('markview').setup({
  preview = {
    icon_provider = "internal",  -- "mini" 或 "devicons" 也可
  },
  markdown = {
    wrap = true,   -- 开启自动换行
    hl_inline_code = true,
  },
  latex = {
    math = {
      enabled = true,
    },
  },
})

安装后检查

:checkhealth markview
-- 运行此命令检查是否有潜在配置问题

核心用法

基础命令

命令 说明
:Markview toggle 切换当前 buffer 预览
:Markview enable 全局启用预览
:Markview disable 全局禁用预览
:Markview splitToggle 打开/关闭分屏预览
:Markview render 手动刷新预览
:Markview HybridToggle 切换混合编辑模式

分屏预览(Splitview)

:Markview splitToggle

滚动自动同步,可在当前窗口编辑、左窗口实时预览,适合写长文时边写边看。

混合编辑模式(Hybrid)

:Markview HybridToggle    " 全局切换
:Markview hybridToggle   " 仅当前 buffer
:Markview linewiseToggle " 行级混合模式(更精细的编辑粒度)

LaTeX 数学预览

行内公式:$E = mc^2$

独立数学块:
$$
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$$

支持命令:\frac{}{}, \sin, \cos, \lim, \sqrt{}, \mathbb{}, \mathbf{} 等 2056+ 符号

Markdown Callout 语法

> [!NOTE]>
> 这是 note callout

> [!WARNING]>
> 注意这个警告

AsciiDoc 预览

= Document Title

== Section

[NOTE]
====
这是 note 块
====

* 列表项
** 嵌套

典型适用场景

场景 推荐功能
写 Markdown 文档/博客 Splitview + 自动换行
学术论文(LaTeX 公式) LaTeX 数学块渲染 + Hybrid
Obsidian PKM 用户 Obsidian 扩展语法(block ref、标签、内部链接)
Typst 文档写作 原生 Typst 语法支持
AsciiDoc 技术文档 分屏预览 + callout
预览 HTML 页面效果 HTML void/container 元素渲染

坑与注意

  1. 不要 lazy-load:插件本身已实现懒加载逻辑,若在外层再套 lazy 反而导致预览加载延迟
  2. colorscheme 加载顺序:透明 colorscheme 用户如遇高亮异常,参考 wiki#transparent-colorschemes
  3. modeline 设置 wrap 的问题:若用 modeline 设置 set wrap,由于 textoff 为 0,可能导致换行异常——这是上游 Neovim 行为,非插件 bug
  4. 代码块后内联代码不识别:markdown parser 边界问题,如果一行跟在代码块后是空的,内联代码块可能不被识别——这是 markdown/markdown_inline treesitter 解析器的已知限制
  5. YAML 预览需额外 parseryaml tree-sitter parser 需单独安装
  6. luarocks 版本可能落后:GitHub release 会比 main 分支稍旧,如需最新功能用插件管理器直接拉 main

与同类对比

工具 优势 劣势
markview.nvim 原生内嵌、多格式支持、混合编辑、可高度定制 仅 Neovim、需 tree-sitter 配置
** grip(GitHub 风格)** 服务器模式、多人协作 非原生、需要外部服务
markdown-preview.nvim 浏览器渲染、与 GitHub 风格一致 非原生、JS 渲染慢
glow(CLI) 免配置、速度快 无交互编辑
typst-preview Typst 原生渲染 仅 Typst、非 Neovim 专用

markview.nvim 是 Neovim 原生富文本预览最完整的方案,在多格式和混合编辑上有明显优势;glow 等 CLI 工具适合纯阅读场景。

一句话推荐结论

如果你用 Neovim 写 Markdown/LaTeX/Obsidian 笔记,追求编辑-预览同步的流畅体验,markview.nvim 是目前 Neovim 生态里多格式支持最完整、定制灵活性最高的原生预览方案——前提是你愿意花 10 分钟配置 tree-sitter。


  • Wiki(配置大全):https://github.com/OXY2DEV/markview.nvim/wiki/Home
  • Releases:https://github.com/OXY2DEV/markview.nvim/releases
  • Neovim 版本要求:≥ 0.10.3
  • 许可证:MIT