markview.nvim

markview.nvim

Neovim 实时渲染高度可定制 Markdown 预览工具

markview.nvim 是为 Neovim 开发的 Markdown 预览插件,支持近乎完整的 Markdown 渲染,包括引用、复选框、标题等元素。该插件具有完全可定制的设置、实时渲染的混合模式和动态高亮分组功能,适配多种配色方案。插件需要 Neovim 0.10.0 或更高版本,可通过多种包管理器安装。markview.nvim 的高度可定制性为 Markdown 编辑提供了灵活的预览体验。

Markview.nvimNeovim插件Markdown预览实时渲染自定义配置Github开源项目

📜 Markview.nvim

一个实验性的 Neovim Markdown 预览插件。

<p align="center"> <a href="https://github.com/OXY2DEV/markview.nvim/wiki" style="font-size: 2rem;">Wiki 页面</a> </p>

混合模式展示 HTML 展示 截图 小截图

✨ 特性

Markview.nvim 拥有众多特性,例如:

  • 接近完整渲染的 Markdown 文档。目前支持的项目有:
    • 块引用(包括 callouts/alerts
    • 复选框(已选、未选和待定状态)
    • 标题(atx 标题和 setext 标题)
    • 水平分割线
    • HTML 支持(仅限简单标签,如 <u>下划线</u>
    • HTML 实体(支持 &<名称>;&<名称> 两种形式)
    • 行内代码
    • 链接(超链接、图片和电子邮件支持)
    • 列表项(有序和无序)
    • 表格
  • 完全可定制的设置!你可以根据需求自定义一切!
  • 支持实时渲染的"混合模式"!它甚至会取消隐藏光标下的节点。
  • 动态"高亮组",支持几乎所有配色方案!

未来还会有更多功能!

📦 要求

  • Neovim 版本:0.10.0 或更高。
  • Tree-sitter 解析器:
    • markdown
    • markdown_inline
    • html
  • Nerd 字体。

可选:

  • 支持 Tree-sitter 的配色方案。

🚀 安装

Markview 可以通过你喜欢的"包管理器"安装。

💤 Lazy.nvim

[!注意] 不建议延迟加载此插件,因为它默认就是这样做的。

对于 lazy.lua 用户:

{ "OXY2DEV/markview.nvim", lazy = false, -- 推荐 -- ft = "markdown" -- 如果你决定延迟加载 dependencies = { -- 如果你手动安装了解析器,就不需要这个 -- 或者如果解析器在你的 $RUNTIMEPATH 中 "nvim-treesitter/nvim-treesitter", "nvim-tree/nvim-web-devicons" } }

对于 plugins/markview.lua 用户:

return { "OXY2DEV/markview.nvim", lazy = false, -- 推荐 -- ft = "markdown" -- 如果你决定延迟加载 dependencies = { -- 如果你手动安装了解析器,就不需要这个 -- 或者如果解析器在你的 $RUNTIMEPATH 中 "nvim-treesitter/nvim-treesitter", "nvim-tree/nvim-web-devicons" } }

🦠 Mini.deps

local MiniDeps = require("mini.deps"); MiniDeps.add({ source = "OXY2DEV/markview.nvim", depends = { -- 如果你不延迟加载,可能不需要这个 -- 或者如果解析器在你的 $RUNTIMEPATH 中 "nvim-treesitter/nvim-treesitter", "nvim-tree/nvim-web-devicons" } })

🌒 Rocks.nvim

你可以通过运行以下命令安装插件:

:Rocks install markview.nvim

👾 Github 发布

你也可以下载其中一个发布版本

🛸 测试

如果你不介意使用稍微"不稳定"的插件版本,可以使用 dev 分支

🌇 命令

Markview 提供了一个命令。

:Markview

它有以下子命令:

  • toggleAll,切换插件状态。将所有已附加缓冲区的状态设置为插件状态。
  • enableAll,在所有已附加缓冲区中启用插件。如果插件已启用,将刷新装饰。
  • disableAll,在所有已附加缓冲区中禁用插件。如果插件已禁用,将尝试删除任何剩余的装饰。
  • toggle {buffer},切换指定缓冲区的状态。
  • enable {buffer},在特定缓冲区启用/刷新插件。
  • disable {buffer},在特定缓冲区禁用插件并清除装饰。

🚀 混合模式

混合模式是插件新增的功能。它可用于在输入时展示或编辑文件。

它使用 tree-sitter 从特定范围移除装饰。它会执行以下操作:

  • 移除光标当前所在块元素的所有装饰。
  • 移除父列表项的装饰,使编辑更加实用
  • 移除整个代码块的装饰,以防止丢失缩进。

以下是使用此功能的推荐配置:

require("markview").setup({ modes = { "n", "no", "c" }, -- 根据需要更改这些模式 hybrid_modes = { "n" }, -- 在普通模式下使用此功能 -- 这个设置很好 callbacks = { on_enable = function (_, win) vim.wo[win].conceallevel = 2; vim.wo[win].conecalcursor = "c"; end } })

以下是在插入模式下使用的最小配置:

require("markview").setup({ modes = { "n", "i", "no", "c" }, hybrid_modes = { "i" }, -- 这是一个不错的功能 callbacks = { on_enable = function (_, win) vim.wo[win].conceallevel = 2; vim.wo[win].concealcursor = "nc"; end } })

🧭 配置

你可以使用 setup() 函数来改变插件的外观。

local markview = require("markview"); local presets = require("markview.presets"); markview.setup({ headings = presets.headings.glow_labels }); vim.cmd("Markview enableAll");

这也可以在运行时使用。所以,你可以随时热切换配置!

现在就试着运行一下吧。


你可以通过两种方式配置插件,

📂 预设

预设是一种简单的方法来改变插件某些部分的外观。

目前有以下项目的预设,

  • 标题
  • 表格

你可以在wiki页面上找到更多关于预设的信息。

🎨 手动

创建这个插件的唯一目的是使其可定制

所以,你可以根据自己的需求改变一切。

下面给出一个简单的例子,

require("markview").setup({ headings = { enable = true, heading_1 = { style = "label", padding_left = " ", padding_right = " ", hl = "MarkviewHeading1" } } });

你可以查看wiki了解更多关于配置的信息。

你还可以查看Recipes获取一些简单的例子。

🌃 高亮组

为了使配置更简单,markview.nvim 默认带有以下高亮组。

📦 引用块

引用块默认使用以下高亮组,

  • MarkviewBlockQuoteDefault,也用于 Quote

各种标注/警告使用以下高亮组,

  • MarkviewBlockQuoteOk,用于 TipSuccess
  • MarkviewBlockQuoteWarn,用于 QuestionCustomWarning
  • MarkviewBlockQuoteError,用于 CautionBugDangerFailure
  • MarkviewBlockQuoteNote,用于 NoteTodoAbstract
  • MarkviewBlockQuoteSpecial,用于 ImportantExample

🎯 复选框

复选框使用这些高亮组,

  • MarkviewCheckboxChecked,来自 DiagnosticOk
  • MarkviewCheckboxUnChecked,来自 DiagnosticError
  • MarkviewCheckboxPending,来自 DiagnosticWarn

💻 代码块和内联代码

代码块使用以下高亮组,

  • MarkviewCode

内联代码使用以下高亮组,

  • MarkviewInlineCode

🔖 标题

标题使用以下高亮组,

  • MarkviewHeading1,来自 DiagnosticVirtualTextOk
  • MarkviewHeading2,来自 DiagnosticVirtualTextHint
  • MarkviewHeading3,来自 DiagnosticVirtualTextInfo
  • MarkviewHeading4,来自 Special
  • MarkviewHeading5,来自 DiagnosticVirtualTextWarn
  • MarkviewHeading6,来自 DiagnosticVirtualTextError

标记使用以下高亮组,

  • MarkviewHeading1Sign,来自 DiagnosticOk
  • MarkviewHeading2Sign,来自 DiagnosticHint
  • MarkviewHeading3Sign,来自 DiagnosticInfo
  • MarkviewHeading4Sign,来自 Special
  • MarkviewHeading5Sign,来自 DiagnosticWarn
  • MarkviewHeading6Sign,来自 DiagnosticError

📏 水平分割线

水平分割线使用以下高亮组作为渐变。

  • MarkviewGradient1,来自 Normal
  • MarkviewGradient2
  • MarkviewGradient3
  • MarkviewGradient4
  • MarkviewGradient5
  • MarkviewGradient6
  • MarkviewGradient7
  • MarkviewGradient8
  • MarkviewGradient9
  • MarkviewGradient10,来自 Cursor

🔗 链接

链接使用以下高亮组,

  • MarkviewHyperlink,来自 markdownLinkText
  • MarkviewImageLink,来自 markdownLinkText
  • MarkviewEmail,来自 @markup.link.url.markdown_inline

📝 列表项

列表项使用以下高亮组,

  • MarkviewListItemMinus,来自 DiagnosticWarn
  • MarkviewListItemPlus,来自 DiagnosticOk
  • MarkviewListItemStar,来自 @comment.note

📐 表格

表格使用以下高亮组作为边框,

  • MarkviewTableBorder,来自 Title

对于列对齐标记,使用这些高亮组,

  • MarkviewTableAlignLeft,来自 Title
  • MarkviewTableAlignRight,来自 Title
  • MarkviewTableAlignCenter,来自 Title

⭐ 插件展示

showcase_1

<sub><a href="https://github.com/scottmckendry">@scottmckendry</a> 提供</sub>

<!-- vim:nospell: -->

编辑推荐精选

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

下拉加载更多