在编程或是整理知识的时候一直苦于没有一款可以帮助理清思路的工具。

在网上苦寻良久,终于找到了一款可心可意的小软件 —— Graphviz。

折腾了一番,终于可以凑合着用了。

现将折腾的成果记录于此以作备忘,当然如果能够抛砖引玉那就再好不过了。

因为本人主要使用 Windows 以下将用 Windows 环境为例进行介绍。

First

  1. 于此处下载需要的版本:http://www.graphviz.org/Download..php
  2. 将下载好的 msi 文件或 zip 文件安装或解压,记下安装路径。
  3. 将安装目录中的 bin 文件夹放入 path。

Sencond

  1. 于此处下载可以自动刷新的看图软件 JPEGView:https://sourceforge.net/projects/jpegview/
  2. 解压后把它放到你想放的地方

Third

  1. 你应该已经安装 VIM 了吧,如果没有就去这里下载安装:http://www.vim.org/
  2. 现在找到你的 .vimrc 文件,在其中添加如下内容:  
 autocmd BufWritePost *.dot :silent !dot -Tpng -o %<.png %

 autocmd BufWinEnter *.dot nno <leader>g :!start “JPEGView 主程序的路径” %:p:r.png<cr>

第一行里的 % 代表当前编辑文件的文件名而 %< 则表示去掉了扩展名的文件名,加上 .png 就构成了输出图像的文件名。所以这一句的意思是在保存当前 .dot 文件的时候同时生成相应的 .png 文件以方便查看。

第二行的意思是当用户按下 <leader>g 的时候用 JPEGView 打开上一步中生成的图片文件。其中 %:p:r 表示图片文件的绝对路径(不知为什么用 %<.png 的时候对在第二个标签页里打开的 .dot 文件不起作用。),:p 表示当前文件的路径,:r 表示去除扩展名,详情可在 VIM 中使用 filename-modifiers 进行查看。

现在就可以在 VIM 中编辑 .dot 文件并实时查看了。

就像这样:

另外 VIM 有个 wmgraphviz 插件可以提供一些与 Graphviz 相关的功能,其中有个 GraphvizInteractive 命令按照官方的说法也可以实现实时预览,不过可能并不支持在 Windows 下使用。如果你感兴趣可以点击这个链接:https://github.com/wannesm/wmgraphviz.vim

整合VIM和Graphviz,并且使用本办法实现实时预览的更多相关文章

  1. ubuntu vim markdown 实时预览

    vim-instant-markdown插件 该插件支持vim编辑markdown文件时实时预览,不需要手动做任何事情! 使用vim打开一个xxx.md文件,浏览器会自动打开一个预览网页,在编辑这个文 ...

  2. Vim安装插件支持 MarkDown 语法、实时预览等

    使用 markdown-preview.vim 插件可以实时通过浏览器预览 markdown 文件 使用该插件需要 vim 支持py2/py3 安装 使用 vim-plug: 在 .vimrc 或 i ...

  3. Linux环境下shell和vim中乱码原因及消除办法

    shell和vim中乱码原因及消除办法 作者:Jack47 在Linux下开发,经常遇到乱码问题:shell或者vim中显示不了中文,或者能够显示,但不能输入中文.每次都是上网去搜,或者同事告诉我一些 ...

  4. Windows 10 技术预览版9926 “未知源”引起系统休眠后自启的解决办法

    问题的由来: 自从安装上了最新发布的Windows 10 ,使用起来有诸多的改进:无论是重绘的图标还是通知消息中心的整合还是更智能的OneDrive客户端都使得工作起来非常愉悦. 不过笔者这两天频繁遇 ...

  5. 关于confluence上传文件附件预览查看时出现乱码的问题解决办法

    在confluence上传excel文件,预览时发现乱码问题主要是因为再上传文件的时候一般是Windows下的文件上传,而预览的时候,是linux下的环境,由于linux下没有微软字体,所以预览的时候 ...

  6. 停止预览时调用Camera.release(), 出现Method called after release()异常问题原因及解决办法

    如下代码: private void stopPreview() { Log.w(TAG, "stopPreview(), _isPreviewing = " + _isPrevi ...

  7. Android Studio 无法预览xml布局视图的解决办法

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lvyoujt/article/details/73283762 提示:failed to load ...

  8. 关于云平台中OFFICE预览与视频预览的解决办法

    最近,随着firefox x64的升级,出现flash插件完全被禁止的现象,html5替换是大势所趋,原来我们在云平台中有多处使用flash的地方,比如OFFICE预览,视频播放,游戏等,现对于OFF ...

  9. 关于Windows 10上MarkdownPad2无法预览的解决办法

    升级win10后,发现一直可以用的MarkdownPad2预览功能不可以用了.于是在网上搜索了一下,刚开始没有解决.不过现在可以了.现在把解决方案记录下来.Windows10上使用MarkdownPa ...

随机推荐

  1. AngularJS国际化配置

    AngularJS国际化配置 下载angular-translate 下载zip包:https://github.com/angular-translate/bower-angular-transla ...

  2. JVM启动报错: Could not reserve enough space for object heap error

    首先了解一下参数的含义: 参数 含义 -Xms2G -Xmx2G 代表jvm可用的heap内存最小和最大 -XX:PermSize -XX:MaxPermSize 代表jvm的metadata内存的大 ...

  3. 深入js之基本语法

    周末正好有空就研究了下汤姆大叔的js系列博客,虽然只是学到点皮毛,依然获益匪浅.不得不说大牛的境界岂是吾等小辈可理解. 变量: js有隐含的全局概念,意味着不声明的所有变量都是全局对象的属性. fun ...

  4. 【转】MVC Model建模及Entity Framework Power Tool使用

    MVC如使用Code-First代码优先约定,先建实体类,再根据实体类创建数据库. 在创建实体类后,新建一个数据上下文类,如下: publicclassMusicStoreDB : DbContext ...

  5. 如何创建一个基于Node的HTTP服务器

    首先创建一个HTTP服务器. var http = require('http'); function serve(request,response) { console.log(request.me ...

  6. python36异步任务 获取ip地址的地理位置

    # encoding: utf-8 import asyncio import requests import functools url = "http://ip.zxinc.org/ap ...

  7. ef——存储过程

      数据库中存在存储过程GetCategory: ALTER proc [dbo].[GetCategory] @cid int as begin select * from Categories w ...

  8. 方法执行一次js

    var isFirst = true; $(function () { //一级 $("#City").change(function () { var url = "/ ...

  9. JavaScript迭代

    定义: 指的是按照某种顺序逐个访问列表中的每一项. 迭代在数学中的定义: 在循环的基础上, 每一次循环, 都比上一次更为接近结果. 循环定义:指的是在满足条件的情况下,重复执行同一段代码. 迭代方法: ...

  10. 用js 实现代码获取下拉框的value值

    var rtl=document.getElementById("selpartyorg"); //获取下拉框对象 var id=rtl.options[rtl.selectedI ...