vscode-markdown

vscode-markdown

Visual Studio Code的全能Markdown扩展

vscode-markdown是Visual Studio Code的全能Markdown扩展。它集成了丰富功能,如快捷键操作、自动目录生成、列表编辑、数学公式支持和GitHub风格Markdown。此扩展简化了Markdown文档的创建、编辑和预览流程,并支持HTML导出。通过多样化的自定义选项,vscode-markdown能满足各类用户需求,显著提升Markdown写作体验。

Visual Studio CodeMarkdown插件编辑器功能开发工具Github开源项目

Visual Studio Code的Markdown支持 <!-- 目录中省略 -->

版本 安装量 GitHub工作流状态 GitHub星标 GitHub贡献者

Markdown所需的一切(快捷键、目录、自动预览等)。

注意:VS Code自带基本的Markdown支持(如Markdown预览),更多信息请参阅官方文档

目录

功能

快捷键

<p><img src="https://yellow-cdn.veclightyear.com/835a84d5/225ddab0-64d7-4e34-b148-e66b7aa98b3d.gif" alt="切换加粗 gif" width="282px"> <br>(注:多个单词)</p> <p><img src="https://yellow-cdn.veclightyear.com/835a84d5/dcc983c3-34be-440a-94fa-aa59e1c97967.gif" alt="检查任务列表" width="240px"></p>

完整的键绑定列表请参见键盘快捷键部分

目录

<p><img src="https://yellow-cdn.veclightyear.com/835a84d5/cfb3920e-63b9-467e-b7ad-8a7a00e3bcde.png" alt="目录" width="305px"></p>
  • 运行命令"创建目录"(在VS Code命令面板中)以插入新的目录。

  • 默认情况下,目录会在文件保存时自动更新。如需禁用,请更改toc.updateOnSave选项。

  • 目录的**缩进类型(制表符或空格)**可以按文件配置。在VS Code状态栏的右下角找到此设置。

    注意:请同时检查list.indentationSize选项。

  • 要使目录兼容GitHub或GitLab,请相应设置slugifyMode选项

  • 三种方法控制目录中显示哪些标题

    <details> <summary>点击展开</summary>
    1. 在标题末尾添加<!-- omit from toc -->以在目录中忽略它
      (也可以放在标题上方)

    2. 使用toc.levels设置。

    3. 你还可以使用toc.omittedFromToc设置从目录中省略某些标题(及其子标题):

      // 在你的settings.json中 "markdown.extension.toc.omittedFromToc": { // 使用相对于工作区的路径。 "README.md": [ "# 介绍", "## 同样被省略", ], // 或者对于独立文件使用绝对路径。 "/home/foo/Documents/todo-list.md": [ "## 羞耻清单(我永远不会做这些)", ] }

      注意

      • Setext风格的标题(用===---下划线)也可以被省略,只需在设置中放入它们的# ## 版本即可。
      • 省略标题时,确保文档中的标题是唯一的。重复的标题可能导致不可预测的行为。
    </details>
  • 轻松添加/更新/删除章节编号

    <img src="https://yellow-cdn.veclightyear.com/835a84d5/0a0de647-7043-426f-b0c8-b1ed738ced36.gif" alt="章节编号" width="768px">
  • 如果你看到意外的目录识别,可以在列表上方添加<!-- no toc -->注释

列表编辑

<p><img src="https://yellow-cdn.veclightyear.com/835a84d5/7bb5fab4-bd18-45f9-84b0-5c8451d1be46.gif" alt="回车键" width="214px"></p> <p><img src="https://yellow-cdn.veclightyear.com/835a84d5/c14d005a-1ecc-424f-9f7b-3e54fb6608b7.gif" alt="制表符/退格键" width="214px"></p> <p><img src="https://yellow-cdn.veclightyear.com/835a84d5/b011d739-ef79-4909-90c5-e112ae56a3d2.gif" alt="修复有序列表标记" width="214px"></p>

注意:默认情况下,此扩展会根据CommonMark规范为不同列表确定缩进大小。如果你更喜欢使用固定的制表符大小,请更改list.indentationSize设置。

将Markdown打印为HTML

  • 命令Markdown:将当前文档打印为HTMLMarkdown:将文档打印为HTML(批处理模式)

  • 兼容其他已安装的Markdown插件(如Markdown脚注)。 导出的HTML应该看起来与VS Code内部相同(由于API限制,某些主题颜色除外)。

  • 使用注释<!-- title: 你的标题 -->(在第一行)来指定导出HTML的标题。

  • 指向.md文件的纯链接将被转换为.html

  • 如果你想与他人分享文档,建议使用浏览器(如Chrome)将导出的HTML打印为PDF。

GitHub风格的Markdown

  • 表格格式化工具

    <p><img src="https://yellow-cdn.veclightyear.com/835a84d5/7dfceb4a-4618-4641-a055-169d3233699c.gif" alt="表格格式化工具" width="246px"></p>

    注意:在Linux上,键绑定是<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>I</kbd>。参见Visual Studio Code键绑定

  • 任务列表

数学公式

<p><img src="https://yellow-cdn.veclightyear.com/835a84d5/1ce6a619-24bf-462c-8357-e906283b7388.png" alt="math" width="544px"></p>

请使用Markdown+Math获得专门的数学支持。请确保禁用此扩展的math.enabled选项。

自动补全

提示:也支持completion.root选项

  • 图片/文件(遵循search.exclude选项)

    <p><img src="https://yellow-cdn.veclightyear.com/835a84d5/61ecf29f-b5eb-4b06-82c3-8da8d6e86093.png" alt="image completions" width="351px"></p>
  • 数学函数(包括katex.macros选项)

    <p><img src="https://yellow-cdn.veclightyear.com/835a84d5/21b83c3c-90f8-4508-b649-f09f3ab9c640.png" alt="math completions" width="154px"></p>
  • 引用链接

    <p><img src="https://yellow-cdn.veclightyear.com/835a84d5/03c953d3-d71a-4b36-97a0-58e2a99b1dc0.png" alt="reference links" width="301px"></p>

其他功能

  • 在选中文本上粘贴链接

    <p><img src="https://yellow-cdn.veclightyear.com/835a84d5/d0666665-0567-43ae-94e2-d36955b5059b.gif" alt="paste link" width="342px"></p>
  • 添加"关闭预览"快捷键,允许您使用与"打开预览"相同的快捷键(<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>V</kbd><kbd>Ctrl</kbd> + <kbd>K</kbd> <kbd>V</kbd>)关闭预览标签页。

可用命令

  • Markdown All in One: 创建目录
  • Markdown All in One: 更新目录
  • Markdown All in One: 添加/更新章节编号
  • Markdown All in One: 移除章节编号
  • Markdown All in One: 切换代码段
  • Markdown All in One: 切换代码块
  • Markdown All in One: 将当前文档打印为HTML
  • Markdown All in One: 将文档打印为HTML
  • Markdown All in One: 切换数学环境
  • Markdown All in One: 切换列表
    • 它将循环使用列表标记(默认为-*+1.1),可通过list.toggle.candidate-markers选项更改)。

键盘快捷键

<details> <summary>表格</summary>
按键命令
<kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>B</kbd>切换粗体
<kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>I</kbd>切换斜体
<kbd>Alt</kbd>+<kbd>S</kbd>(Windows系统)切换删除线<sup>1</sup>
<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>]</kbd>切换标题(升级)
<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>[</kbd>切换标题(降级)
<kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>M</kbd>切换数学环境
<kbd>Alt</kbd> + <kbd>C</kbd>勾选/取消任务列表项
<kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>Shift</kbd> + <kbd>V</kbd>切换预览
<kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>K</kbd> <kbd>V</kbd>切换侧边预览

<sup>1. 如果光标在列表/任务项上且没有选中文本,删除线将应用于整个项目(行)</sup>

</details>

支持的设置

<details> <summary>表格</summary>
名称默认值描述
markdown.extension.completion.respectVscodeSearchExcludetrue提供文件路径补全时是否考虑search.exclude选项
markdown.extension.completion.root提供文件路径补全时的根文件夹(当路径以/开始时生效)
markdown.extension.italic.indicator*使用*_包裹斜体文本
markdown.extension.bold.indicator**使用**__包裹粗体文本
markdown.extension.katex.macros{}KaTeX宏,例如{ "\\name": "expansion", ... }
markdown.extension.list.indentationSizeadaptive为有序和无序列表使用不同的缩进大小
markdown.extension.list.toggle.candidate-markers[ "-", "*", "+", "1.", "1)" ]使用数组切换有序列表标记,例如["*", "1."]
markdown.extension.orderedList.autoRenumbertrue在编辑时自动修复列表标记
markdown.extension.orderedList.markerorderedone:始终使用1.作为有序列表标记
markdown.extension.preview.autoShowPreviewToSidefalse打开Markdown文件时自动显示预览
markdown.extension.print.absoluteImgPathtrue将图片路径转换为绝对路径
markdown.extension.print.imgToBase64false打印为HTML时将图片转换为base64
markdown.extension.print.includeVscodeStylesheetstrue是否包含VS Code的默认样式
markdown.extension.print.onFileSavefalse文件保存时打印为HTML
markdown.extension.print.themelight导出HTML的主题
markdown.extension.print.validateUrlstrue打印时启用/禁用URL验证
markdown.extension.syntax.decorationstrue删除线代码段添加装饰
markdown.extension.syntax.decorationFileSizeLimit50000如果文件大于此大小(字节/B),则不渲染语法装饰
markdown.extension.syntax.plainThemefalse无干扰主题
markdown.extension.tableFormatter.enabledtrue启用GFM表格格式化器
markdown.extension.toc.slugifyModegithubTOC链接生成的Slugify模式(vscodegithubgitlabgitea
markdown.extension.toc.omittedFromToc{}按项目文件列出要省略的标题(例如{ "README.md": ["# Introduction"] }
markdown.extension.toc.levels1..6控制在目录中显示的标题级别
markdown.extension.toc.orderedListfalse在目录中使用有序列表
markdown.extension.toc.plaintextfalse仅纯文本
markdown.extension.toc.unorderedList.marker-在目录中使用-*+(用于无序列表)
markdown.extension.toc.updateOnSavetrue保存时自动更新目录
</details>

常见问题

问:错误"找不到命令'markdown.extension.onXXXKey'"

  • 在大多数情况下,这是因为VS Code在您首次打开Markdown文件时需要几秒钟来加载此扩展。(您会在状态栏上看到"正在激活扩展..."的消息。)

  • 如果等待很长时间后仍然看到此"找不到命令"错误,请尝试重启VS Code。如果需要,重新安装此扩展:

    1. 卸载此扩展。
    2. 关闭并重启VS Code。(重要!)
    3. 重新安装此扩展。
  • 如果这还不能解决问题,请随时在GitHub上开启一个新问题。如果您能向我们报告任何可疑的错误信息会更好:这通常在VS Code的菜单栏帮助 > 切换开发人员工具 > 控制台中。

  • (作为最后的手段,如果您完全不需要列表编辑功能,可以选择通过VS Code的键盘快捷方式编辑器删除onXXXKey键。)

问:支持哪些Markdown语法?

对于其他Markdown语法,您需要从VS Code市场安装相应的扩展(例如Mermaid图表表情符号脚注上标)。安装后,它们将在VS Code和导出的HTML文件中生效。

问:这个扩展覆盖了我的一些键绑定(例如<kbd>Ctrl</kbd> + <kbd>B</kbd><kbd>Alt</kbd> + <kbd>C</kbd>

您可以使用VS Code的键盘快捷方式编辑器轻松管理键绑定。(此扩展提供的命令以markdown.extension为前缀。)

问:扩展无响应,导致延迟等问题(性能问题)

根据经验,性能问题很可能是由其他扩展引起的(例如,某些拼写检查扩展)。

如果您禁用所有其他扩展(在VS Code命令面板中执行Developer: Reload with Extensions DisabledExtensions: Disable All Installed Extensions for this Workspace),然后仅启用此扩展再次尝试,就可以验证这一点。

要找出根本原因,您可以安装我们的开发版本debug.vsix),并按照VS Code官方的说明创建CPU配置文件。然后请在GitHub上开一个issue,并附上该配置文件(.cpuprofile.txt)。

更新日志

有关更多信息,请参阅CHANGELOG

最新开发版本

这里下载,请点击最新的通过事件以下载构建产物。

有两个版本:markdown-all-in-one-*.vsix是常规构建,而debug.vsix用于创建详细的CPU配置文件。

要安装,请在VS Code命令面板(ctrl + shift + p)中执行Extensions: Install from VSIX...

贡献

特别感谢协作者@Lemmingh和所有其他贡献者


相关

我的更多扩展

编辑推荐精选

Trae

Trae

字节跳动发布的AI编程神器IDE

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

热门AI工具生产力协作转型TraeAI IDE
OmniParser

OmniParser

帮助AI理解电脑屏幕 纯视觉GUI元素的自动化解析方案

开源工具通过计算机视觉技术实现图形界面元素的智能识别与结构化处理,支持自动化测试脚本生成和辅助功能开发。项目采用模块化设计,提供API接口与多种输出格式,适用于跨平台应用场景。核心算法优化了元素定位精度,在动态界面和复杂布局场景下保持稳定解析能力。

Github开源项目OmniParser界面解析交互区域检测
Grok3

Grok3

埃隆·马斯克旗下的人工智能公司 xAI 推出的第三代大规模语言模型

Grok3 是由埃隆·马斯克旗下的人工智能公司 xAI 推出的第三代大规模语言模型,常被马斯克称为“地球上最聪明的 AI”。它不仅是在前代产品 Grok 1 和 Grok 2 基础上的一次飞跃,还在多个关键技术上实现了创新突破。

腾讯元宝

腾讯元宝

腾讯自研的混元大模型AI助手

腾讯元宝是腾讯基于自研的混元大模型推出的一款多功能AI应用,旨在通过人工智能技术提升用户在写作、绘画、翻译、编程、搜索、阅读总结等多个领域的工作与生活效率。

AI助手热门AI工具AI对话腾讯元宝智能体 AI 办公助手
Windsurf Wave 3

Windsurf Wave 3

Windsurf Editor推出第三次重大更新Wave 3

新增模型上下文协议支持与智能编辑功能。本次更新包含五项核心改进:支持接入MCP协议扩展工具生态,Tab键智能跳转提升编码效率,Turbo模式实现自动化终端操作,图片拖拽功能优化多模态交互,以及面向付费用户的个性化图标定制。系统同步集成DeepSeek、Gemini等新模型,并通过信用点数机制实现差异化的资源调配。

AI IDE
Cursor

Cursor

增强编程效率的AI代码编辑器

Cursor作为AI驱动的代码编辑工具,助力开发者效率大幅度提升。该工具简化了扩展、主题和键位配置的导入,可靠的隐私保护措施保证代码安全,深受全球开发者信赖。此外,Cursor持续推出更新,不断优化功能和用户体验。

AI工具AI开发辅助编程CursorAI代码编辑器
Manus

Manus

全面超越基准的 AI Agent助手

Manus 是一款通用人工智能代理平台,能够将您的创意和想法迅速转化为实际成果。无论是定制旅行规划、深入的数据分析,还是教育支持与商业决策,Manus 都能高效整合信息,提供精准解决方案。它以直观的交互体验和领先的技术,为用户开启了一个智慧驱动、轻松高效的新时代,让每个灵感都能得到完美落地。

飞书知识问答

飞书知识问答

飞书官方推出的AI知识库 上传word pdf即可部署AI私有知识库

基于DeepSeek R1大模型构建的知识管理系统,支持PDF、Word、PPT等常见文档格式解析,实现云端与本地数据的双向同步。系统具备实时网络检索能力,可自动关联外部信息源,通过语义理解技术处理结构化与非结构化数据。免费版本提供基础知识库搭建功能,适用于企业文档管理和个人学习资料整理场景。

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具使用教程AI营销产品酷表ChatExcelAI智能客服
DeepEP

DeepEP

DeepSeek开源的专家并行通信优化框架

DeepEP是一个专为大规模分布式计算设计的通信库,重点解决专家并行模式中的通信瓶颈问题。其核心架构采用分层拓扑感知技术,能够自动识别节点间物理连接关系,优化数据传输路径。通过实现动态路由选择与负载均衡机制,系统在千卡级计算集群中维持稳定的低延迟特性,同时兼容主流深度学习框架的通信接口。

下拉加载更多