基于neovim和plantuml搭建写代码并实时预览的绘图环境

简介: ## 传统画流程图的痛点 我们经常需要画流程图来表示代码逻辑或者基本框架等。但我们在绘画流程图的时候,经常会在对齐连接线这些和流程图表达的意义无关的环节上浪费大量时间。 而流程图这一表达方式本身天然适合代码描述,因此有人设计了plantuml这种软件语言来专门处理流程图逻辑,把图片渲染的工作交给graphviz来做。 本文旨在基于neovim和浏览器(一般是chro

传统画流程图的痛点

我们经常需要画流程图来表示代码逻辑或者基本框架等。但我们在绘画流程图的时候,经常会在对齐连接线这些和流程图表达的意义无关的环节上浪费大量时间。  
而流程图这一表达方式本身天然适合代码描述,因此有人设计了plantuml这种软件语言来专门处理流程图逻辑,把图片渲染的工作交给graphviz来做。  
本文旨在基于neovim和浏览器(一般是chrome,实际上支持各种浏览器),使用plantuml描述语言,搭建使用代码画流程图,并实时预览的绘图环境。
AI 代码解读

具体流程

1、依赖的第三方工具:graphviz

2、vim配置plantuml实时预览用到的插件

a)packer.nvim安装方式:

  • use {'tyru/open-browser.vim', ft = {'plantuml'}, event = 'BufEnter'}
  • use {'sheerun/vim-polyglot', ft = {'plantuml', 'markdown'}}
  • use {'weirongxu/plantuml-previewer.vim', ft = {'plantuml'}, event = 'BufEnter'}

b)vim-plug安装方式:

  • Plug 'sheerun/vim-polyglot
  • Plug 'tyru/open-browser.vim'
  • Plug 'weirongxu/plantuml-previewer.vim'

其中,vim-polyglot用来做语法高亮,plantuml-previewer.vim调用graphviz进行图片的渲染,open-browser.vim用来通过浏览器预览渲染出来的图。
最近plantuml支持了不同theme进行图片的渲染,更多选择,总有一款适合你。

3、安装完插件后需要做的配置

  1. 写一个bash脚本,文件名叫makeprg,内容如下:
#!/bin/bash
java -jar ~/.local/share/nvim/site/pack/packer/opt/plantuml-previewer.vim/lib/plantuml.jar -tsvg $@
AI 代码解读
  1. makeprg放入系统$PATH路径下,供plantuml-previewer调用。

4、开始画我们第一个plantuml流程图

  1. 先看已经安装了哪些theme

a) nvim新建一个puml文件
nivm theme.puml

b) 输入如下内容:

@startuml
help themes
@enduml
AI 代码解读

c) 命令模式输入:PlantumlOpen,得到已经安装的theme列表,后续要选择其中一种。
theme

  1. 写我们的第一个流程图代码,指定要用的theme为bluegray。
@startuml
!theme bluegray
start
if ("你想练葵花宝典") then (true)
floating note right:修炼葵花宝典注意事项
    if ("你能接受自宫吗") then (no)
        :"很遗憾,你无法修炼";
    else (yes)
        if ("你有葵花宝典秘籍吗") then (yes)
            :"恭喜你,可以修炼";
        else (no)
            :"很遗憾,你无法修炼";
        endif
    endif
else (false)
    :"不修炼";
endif
stop
@enduml
AI 代码解读
  1. 执行:PlantumlOpen生成流程图。

test

  1. 换成sandstone主题。
@startuml
!theme sandstone
start
if ("你想练葵花宝典") then (yes)
floating note right:修炼葵花宝典注意事项
    if ("你能接受自宫吗") then (no)
        :"很遗憾,你无法修炼";
    else (yes)
        if ("你有葵花宝典秘籍吗") then (yes)
            :"恭喜你,可以修炼";
        else (no)
            :"很遗憾,你无法修炼";
        endif
    endif
else (no)
    :"不修炼";
endif
stop
@enduml
AI 代码解读

test

目录
打赏
0
0
0
0
0
分享
相关文章
Unity编辑器神级扩展攻略:从批量操作到定制Inspector界面,手把手教你编写高效开发工具,解锁编辑器隐藏潜能
【8月更文挑战第31天】Unity是一款强大的游戏开发引擎,支持多平台发布与高度可定制的编辑器环境。通过自定义编辑器工具,开发者能显著提升工作效率。本文介绍如何使用C#脚本扩展Unity编辑器功能,包括批量调整游戏对象位置、创建自定义Inspector界面及项目统计窗口等实用工具,并提供具体示例代码。理解并应用这些技巧,可大幅优化开发流程,提高生产力。
557 1
【PyQt5桌面应用开发】2.可视化界面编程步骤(超级详细)
【PyQt5桌面应用开发】2.可视化界面编程步骤(超级详细)
575 1
不会画uml?推荐使用代码画图的工具PlantUml
不会画uml?推荐使用代码画图的工具PlantUml
713 1
Unity快手上手【熟悉unity编辑器,C#脚本控制组件一些属性之类的】
Unity快手上手【熟悉unity编辑器,C#脚本控制组件一些属性之类的】
182 0
CocosCreator3.8研究笔记(二十三)CocosCreator 动画系统-动画编辑器相关功能面板说明
CocosCreator3.8研究笔记(二十三)CocosCreator 动画系统-动画编辑器相关功能面板说明
342 0
零基础Python教程047期 GUI窗体界面编程,迈出软件开发的第一步
零基础Python教程047期 GUI窗体界面编程,迈出软件开发的第一步
182 0
封装库/工具库中重要概念之编辑器
在前端开发中,编辑器(Code Editor)是一项非常重要的工具,它可以帮助我们更加高效地编写和编辑代码。虽然市面上已经有了许多强大的编辑器,但是使用封装库/工具库可以帮助我们更加方便地集成编辑器到我们的项目中
140 0