整合VIM和Graphviz,并且使用本办法实现实时预览
在编程或是整理知识的时候一直苦于没有一款可以帮助理清思路的工具。
在网上苦寻良久,终于找到了一款可心可意的小软件 —— Graphviz。
折腾了一番,终于可以凑合着用了。
现将折腾的成果记录于此以作备忘,当然如果能够抛砖引玉那就再好不过了。
因为本人主要使用 Windows 以下将用 Windows 环境为例进行介绍。
First
- 于此处下载需要的版本:http://www.graphviz.org/Download..php
- 将下载好的 msi 文件或 zip 文件安装或解压,记下安装路径。
- 将安装目录中的 bin 文件夹放入 path。
Sencond
- 于此处下载可以自动刷新的看图软件 JPEGView:https://sourceforge.net/projects/jpegview/
- 解压后把它放到你想放的地方
Third
- 你应该已经安装 VIM 了吧,如果没有就去这里下载安装:http://www.vim.org/
- 现在找到你的 .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,并且使用本办法实现实时预览的更多相关文章
- ubuntu vim markdown 实时预览
vim-instant-markdown插件 该插件支持vim编辑markdown文件时实时预览,不需要手动做任何事情! 使用vim打开一个xxx.md文件,浏览器会自动打开一个预览网页,在编辑这个文 ...
- Vim安装插件支持 MarkDown 语法、实时预览等
使用 markdown-preview.vim 插件可以实时通过浏览器预览 markdown 文件 使用该插件需要 vim 支持py2/py3 安装 使用 vim-plug: 在 .vimrc 或 i ...
- Linux环境下shell和vim中乱码原因及消除办法
shell和vim中乱码原因及消除办法 作者:Jack47 在Linux下开发,经常遇到乱码问题:shell或者vim中显示不了中文,或者能够显示,但不能输入中文.每次都是上网去搜,或者同事告诉我一些 ...
- Windows 10 技术预览版9926 “未知源”引起系统休眠后自启的解决办法
问题的由来: 自从安装上了最新发布的Windows 10 ,使用起来有诸多的改进:无论是重绘的图标还是通知消息中心的整合还是更智能的OneDrive客户端都使得工作起来非常愉悦. 不过笔者这两天频繁遇 ...
- 关于confluence上传文件附件预览查看时出现乱码的问题解决办法
在confluence上传excel文件,预览时发现乱码问题主要是因为再上传文件的时候一般是Windows下的文件上传,而预览的时候,是linux下的环境,由于linux下没有微软字体,所以预览的时候 ...
- 停止预览时调用Camera.release(), 出现Method called after release()异常问题原因及解决办法
如下代码: private void stopPreview() { Log.w(TAG, "stopPreview(), _isPreviewing = " + _isPrevi ...
- Android Studio 无法预览xml布局视图的解决办法
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lvyoujt/article/details/73283762 提示:failed to load ...
- 关于云平台中OFFICE预览与视频预览的解决办法
最近,随着firefox x64的升级,出现flash插件完全被禁止的现象,html5替换是大势所趋,原来我们在云平台中有多处使用flash的地方,比如OFFICE预览,视频播放,游戏等,现对于OFF ...
- 关于Windows 10上MarkdownPad2无法预览的解决办法
升级win10后,发现一直可以用的MarkdownPad2预览功能不可以用了.于是在网上搜索了一下,刚开始没有解决.不过现在可以了.现在把解决方案记录下来.Windows10上使用MarkdownPa ...
随机推荐
- WPF Binding(四种模式)
在使用Binding类的时候有4中绑定模式可以选择 BindingMode TwoWay 导致对源属性或目标属性的更改可自动更新对方.此绑定类型适用于可编辑窗体或其他完全交互式 UI 方案. OneW ...
- rails 中 create, new, build, save 的用法以及误区汇总 (转)
自己很初级,初级的不能再初级,所以初次接触rails的时候,对于里面的create,new,build等方法不是很了解,用的很混乱,导致经常出现不必要的bug,很苦恼,决定,总结一下,结合网上已有资源 ...
- IOS项目之分层MVVM
在做.Net时,有用到三层架构,使项目分层.ios项目使用AFNetWork把网络层这块也放进了ViewController中,数据解析缓存这些也在里面,这样层次结构可能不够清楚,今天就试着分离了一下 ...
- 很实用的web性能测试插件:Yslow , PageSpeed
package org.springframework.web.servlet.resource; import java.io.IOException; import java.io.Unsuppo ...
- C#基础笔记(第十二天)
1.复习里氏转换:1).子类可以赋值给父类(如果有一个方法需要一个父类作为参数,我们可以传第一个子类对象)2).如果父类中装的是子类对象,则可以将这个父类强转为子类对象 is和as判断转换成功失败 P ...
- Docker学习(一): 基本概念
特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1 ...
- [javaSE] IO流(FIle对象递归文件列表)
获取File对象,new出来,构造参数:String目录名 调用File对象的list()方法,获取String[]数组文件名称 循环数组,列出所有文件包含隐藏文件 递归列出所有的数据 定义一个静态方 ...
- 撩课-Python-每天5道面试题-第8天
一. 解释下什么是闭包? 有怎样的场景作用? 概念 在函数嵌套的前提下 内层函数引用了外层函数的变量(包括参数) 外层函数, 又把 内层函数 当做返回值进行返回 这个内层函数+所引用的外层变量, 称为 ...
- 02-Http请求与响应全解
什么是协议 约束双方规范的一个准则 什么是HTTP协议 HTTP,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议 所有的WWW文件都必须遵 ...
- golang产生guid
labix.org/v2/mgo/bson 包虽然是MongoDB的golang实现,其中产生唯一ID的算法是独立的,不依赖MongoDB, 提炼这部分的代码如下: package main im ...