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

相关文章
|
9月前
|
人工智能 Java API
Google Gemini API 接口调用方法
Google 最近发布的 Gemini 1.0 AI 模型通过其升级版,Gemini,标志着公司迄今为止最为强大和多功能的人工智能技术的突破。
|
9月前
|
存储 程序员
【汇编】“转移”综述、操作符offset、jmp指令
【汇编】“转移”综述、操作符offset、jmp指令
443 1
Ant Design Pro:设置哈希hash路由
Ant Design Pro:设置哈希hash路由
238 0
|
9月前
|
数据可视化 测试技术 uml
【掌握绘图艺术】用PlantUML绘制完美UML图表,开发者的福音
【掌握绘图艺术】用PlantUML绘制完美UML图表,开发者的福音
1789 1
|
Rust JavaScript 前端开发
【Neovim】配置美化完整流程
【Neovim】配置美化完整流程
6354 0
【Neovim】配置美化完整流程
|
9月前
|
XML Java 数据库连接
【MyBatisPlus】快速入门、常用注解、常用配置
【MyBatisPlus】快速入门、常用注解、常用配置
100 0
|
存储 Java C++
用python写图书管理系统
用python写图书管理系统
249 4
|
JavaScript 搜索推荐 Linux
【vim && neovim】从入门到放弃(“四种”模式、常用命令、正则表达式、文件属性、插件安装--代码补全、一键格式化、显示目录)(二)
本文所有操作均通过ssh连接腾讯云服务器完成。如果你正在使用安装GNOME桌面的Linux,很多操作可以通过鼠标完成,或许更加直观。 推荐使用neovim(结合鼠标操作更加丝滑)。
【vim && neovim】从入门到放弃(“四种”模式、常用命令、正则表达式、文件属性、插件安装--代码补全、一键格式化、显示目录)(二)
|
数据可视化 搜索推荐 Unix
【vim && neovim】从入门到放弃(“四种”模式、常用命令、正则表达式、文件属性、插件安装--代码补全、一键格式化、显示目录)(一)
本文所有操作均通过ssh连接腾讯云服务器完成。如果你正在使用安装GNOME桌面的Linux,很多操作可以通过鼠标完成,或许更加直观。 推荐使用neovim(结合鼠标操作更加丝滑)。
|
监控 前端开发 JavaScript
javascript 异常处理的一些经验
为了提升应用稳定性,我们对前端项目开展了脚本异常治理的工作,对生产上报的js error进行了整体排查,试图通过降低脚本异常的发生频次来提升相关告警的准确率,结合最近在这方面阅读的相关资料,尝试阶段性的做个总结,下面我们来介绍下js异常处理的一些经验。
javascript 异常处理的一些经验

热门文章

最新文章