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

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

传统画流程图的痛点

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

具体流程

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 $@
  1. makeprg放入系统$PATH路径下,供plantuml-previewer调用。

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

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

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

b) 输入如下内容:

@startuml
help themes
@enduml

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
  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

test

相关文章
|
4月前
|
开发者 图形学 开发工具
Unity编辑器神级扩展攻略:从批量操作到定制Inspector界面,手把手教你编写高效开发工具,解锁编辑器隐藏潜能
【8月更文挑战第31天】Unity是一款强大的游戏开发引擎,支持多平台发布与高度可定制的编辑器环境。通过自定义编辑器工具,开发者能显著提升工作效率。本文介绍如何使用C#脚本扩展Unity编辑器功能,包括批量调整游戏对象位置、创建自定义Inspector界面及项目统计窗口等实用工具,并提供具体示例代码。理解并应用这些技巧,可大幅优化开发流程,提高生产力。
447 1
|
Rust JavaScript 前端开发
【Neovim】配置美化完整流程
【Neovim】配置美化完整流程
6010 0
【Neovim】配置美化完整流程
|
Linux Python
Python3,1行代码,制作GUI图形界面,果然被种草了。
Python3,1行代码,制作GUI图形界面,果然被种草了。
93 0
|
数据可视化 开发工具 C语言
python超级画板白板程序源码
python超级画板白板程序源码
212 0
|
开发工具 Python
零基础Python教程047期 GUI窗体界面编程,迈出软件开发的第一步
零基础Python教程047期 GUI窗体界面编程,迈出软件开发的第一步
166 0
|
Python
Python3,1行代码,制作GUI图形界面,果然被种草了。(二)
Python3,1行代码,制作GUI图形界面,果然被种草了。(二)
285 0
Python3,1行代码,制作GUI图形界面,果然被种草了。(二)
|
Linux Python
Python3,1行代码,制作GUI图形界面,果然被种草了。(一)
Python3,1行代码,制作GUI图形界面,果然被种草了。(一)
222 0
Python3,1行代码,制作GUI图形界面,果然被种草了。(一)
|
C# 图形学 开发者
Unity开发者必备的C#脚本技巧
我是一名Unity开发爱好者,自己总结了一些Unity的脚本编辑技巧
232 0
Py之wxPython:利用wxPython设计GUI界面(图片背景+简单按钮)
Py之wxPython:利用wxPython设计GUI界面(图片背景+简单按钮)
Py之wxPython:利用wxPython设计GUI界面(图片背景+简单按钮)