本文主要介紹 graphviz.vim, fork 自 wmgraphviz.vim爹谭,但是除了復(fù)用補(bǔ)全數(shù)據(jù)戏自,我?guī)缀踔貙懥怂袃?nèi)容灌旧,并做了很多改進(jìn)帝际。
可能很多人沒用過 graphviz蟋软,它是一個開源的圖可視化工具分飞,使用 DOT 語言進(jìn)行繪制寞冯,優(yōu)點(diǎn)是可以自動布局体斩,尤其適用于復(fù)雜的流程圖遵堵,結(jié)構(gòu)圖等等箱玷。官方有很多示例,使用時(shí)也可以參考一些其他的優(yōu)秀案例陌宿,比如:
本文并不會對 graphviz 本身做太多介紹锡足,而是分享如何在 Vim 中使用 graphviz.vim 插件方便畫圖。
wmgraphviz.vim 是 graphviz.vim 的前身壳坪,提供了一些補(bǔ)全舶得,一鍵編譯,查看編譯后文件等功能爽蝴。但是使用起來感覺不是那么 fashion沐批,很久以來也幾乎沒怎么更新,比如依然在于 !
進(jìn)行外部調(diào)用蝎亚。
graphviz.vim 整個插件非常簡單九孩,本質(zhì)上就是封裝了一些編譯,一鍵查看的命令而已发框,主要改進(jìn)包括:
-
命令更少躺彬,配置項(xiàng)更簡單。
只有
:Graphviz
和:GraphvizCompile
兩個命令梅惯,:Graphviz
用于打開編譯后的文件宪拥,:GraphvizCompile
用于編譯當(dāng)前文件。如果:Graphviz!
則相當(dāng)于:GraphvizCompile | Graphviz
个唧。對于可選項(xiàng)江解,我采用了傳入?yún)?shù)進(jìn)行調(diào)控。 -
這個很簡單犁河,只是簡單封裝了下 Omni 補(bǔ)全以適應(yīng) ncm2 和 coc.nvim鳖枕。
安裝
使用 vim-plug 進(jìn)行安裝:
Plug 'liuchengxu/graphviz.vim'
用法
:Graphviz
打開編譯后的文件,文件名取自當(dāng)前文件桨螺,輔以不同后綴宾符。默認(rèn)是打開 pdf
類型,比如當(dāng)前打開的文件叫 foo.dot
灭翔,那么 :Graphviz
是嘗試打開 foo.pdf
的文件魏烫,可以傳入擴(kuò)展名進(jìn)行指定。
" 默認(rèn)打開 pdf 文件
" 可選項(xiàng): 'ps', 'pdf', 'png', 'jpg', 'gif', 'svg'
:Graphviz
" 打開 png 文件
:Graphviz png
:Graphviz!
會在目標(biāo)文件不存在的情況下肝箱,嘗試調(diào)用 :GraphvizCompile
進(jìn)行編譯然后再打開哄褒,相當(dāng)于 :GraphvizCompile | Graphviz
。
:GraphvizCompile
用于編譯當(dāng)前文件煌张,可以指定編譯程序和擴(kuò)展名呐赡,默認(rèn)是 dot pdf
。
" :GraphvizCompile [exe] [format]
" 默認(rèn)是用 dot 編譯成 pdf
" :GraphvizCompile dot pdf
:GraphvizCompile
" 指定編譯成 png 格式
:GraphvizCompile png
" 指定用 dot 編譯成 gif 格式骏融,實(shí)際上我沒用過除 dot 的其他編譯項(xiàng):(
:GraphvizCompile dot gif
其他一些可選配置項(xiàng):
" 指定打開文件的命令链嘀。默認(rèn)會根據(jù)平臺自動選擇
" macOS 使用 open, Linux 使用 xdg-open 等
let g:graphviz_viewer = 'open'
" 默認(rèn)編譯生成 pdf 格式,如果想要其他格式档玻,將 pdf 換成其他格式即可
let g:graphviz_output_format = 'pdf'
我基本只用 macOS, 所以 Windows 或者 Linux 沒怎么測試過怀泊,如果遇到問題,可以到 graphviz.vim 提 issue误趴,我會盡量解決 :(霹琼。