在VSCode中编写和预览PlantUML及Mermaid图表

发布时间 - 2025-12-17 00:00:00    点击率:
在VSCode中编写预览PlantUML与Mermaid图表需正确安装插件、配置环境并使用快捷键:PlantUML依赖Java和Graphviz,推荐官方插件并用Ctrl+Alt+P预览;Mermaid在VSCode 1.84+原生支持,需开启mermaid.enabled,用Ctrl+K V预览;两者均支持分栏编辑与热重载,注意语法版本与中文字体配置。

在 VSCode 中编写和预览 PlantUML 与 Mermaid 图表,关键在于装对插件、配好环境、用对快捷键——不需要离开编辑器就能实时看到图表效果。

PlantUML:先装 Java 和 Graphviz,再配插件

PlantUML 依赖 Java 运行时(JRE/JDK ≥ 8),部分图形(如部署图、对象图)还需 Graphviz 的 dot 命令支持。Windows 用户建议直接下载安装包;macOS 可用 Homebrew:brew install graphviz;Linux 用户按发行版安装 graphviz 包即可。

VSCode 插件推荐使用官方维护的 PlantUML(作者:jebbs)。安装后,在设置中确认以下两项:

  • plantuml.jar 路径是否正确(可留空让插件自动下载,或手动指定本地路径)
  • plantuml.server 可设为 https://www.plantuml.com/plantuml(在线渲染,无需本地 Java)

写完 @startuml 开头的代码块后,按 Ctrl+Alt+P(Windows/Linux)或 Cmd+Option+P(macOS),选择 Preview Current Diagram,右侧就会弹出 SVG 预览窗。

Mermaid:开箱即用,但要注意语法版本

Mermaid 插件(如 Mermaid Preview 或 VSCode 内置支持)基本无需额外配置。VSCode 1.84+ 已原生支持 mermaid 代码块渲染(需开启 "mermaid.enabled": true)。

注意:不同 Mermaid 版本语法有差异。比如旧版用 graph TD,新版推荐 flowchart TD;类图中 classDef 必须放在定义之后才生效。建议在文件顶部加注释注明版本:

保存文件后,右键点击代码块 → Open Preview,或用快捷键 Ctrl+K V(聚焦预览窗)。

并排编辑与预览,提升效率

别让预览窗口遮住代码。推荐将编辑器分成左右两栏:左写代码,右点开预览(拖动预览标签到右侧分组即可)。PlantUML 预览支持热重载——改完保存,预览图自动刷新;Mermaid 预览默认也支持,若不生效可检查插件设置中的 autoUpdate 是否开启。

小技巧:

  • PlantUML 支持导出 PNG/SVG:预览页右上角三个点 → Export as PNG
  • Mermaid 预览页右键可复制 SVG 源码,粘贴到支持 HTML 的地方直接显示
  • 在 Markdown 文件里混写图表?确保代码块语言标识准确:```plantuml```mermaid

常见问题速查

图表不渲染?先看右下角状态栏有没有报错提示。PlantUML 常见报错如 java not found,说明没配好 JDK;Mermaid 报 Parse error,大概率是缩进错误或用了新语法但插件版本旧了。

字体中文乱码?PlantUML 默认不支持中文字体。可在 diagram 开头加:

skinparam defaultFontName Noto Sans CJK SC

(需系统已安装该字体,或换用 Microsoft YaHei 等本地常见中文字体)

基本上就这些。配一次,以后写图就跟写代码一样顺手。


# linux  # java  # vscode  # html  # markdown  # svg  # windows  # mac  # 中文乱码  # ai 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  如何快速查询域名建站关键信息?  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  ,南京靠谱的征婚网站?  Laravel如何配置和使用缓存?(Redis代码示例)  如何快速搭建高效香港服务器网站?  nginx修改上传文件大小限制的方法  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  音乐网站服务器如何优化API响应速度?  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Laravel如何使用Telescope进行调试?(安装和使用教程)  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  简历在线制作网站免费版,如何创建个人简历?  网站制作价目表怎么做,珍爱网婚介费用多少?  Laravel storage目录权限问题_Laravel文件写入权限设置  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  C语言设计一个闪闪的圣诞树  Python3.6正式版新特性预览  如何快速搭建二级域名独立网站?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  常州企业网站制作公司,全国继续教育网怎么登录?  Laravel如何处理表单验证?(Requests代码示例)  济南网站建设制作公司,室内设计网站一般都有哪些功能?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  高端云建站费用究竟需要多少预算?  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  LinuxShell函数封装方法_脚本复用设计思路【教程】  使用豆包 AI 辅助进行简单网页 HTML 结构设计  香港网站服务器数量如何影响SEO优化效果?  简单实现Android验证码  免费视频制作网站,更新又快又好的免费电影网站?  如何获取PHP WAP自助建站系统源码?  WordPress 子目录安装中正确处理脚本路径的完整指南  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  北京网站制作的公司有哪些,北京白云观官方网站?  Laravel如何使用Gate和Policy进行授权?(权限控制)  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  如何用低价快速搭建高质量网站?  Android自定义控件实现温度旋转按钮效果  智能起名网站制作软件有哪些,制作logo的软件?  phpredis提高消息队列的实时性方法(推荐)  Laravel如何保护应用免受CSRF攻击?(原理和示例)  如何挑选优质建站一级代理提升网站排名?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  如何快速搭建支持数据库操作的智能建站平台?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  如何在建站之星绑定自定义域名?