基本需求
使用vim中的autocmd命令可以很容易的将正在编辑的文件与外部的程序关联起来,从而使得开发效率更高。比如经常会用到这样的功能:
- 编写一段python脚本,需要快速的查看该脚本的运行结果(最好是能做到一键完成)
- 使用dot脚本绘制系统的模块关系等,需要即时预览结果(比如调整色彩,模块间的连线等)
autocmd命令简介
通过vim的autocmd可以很容易的做到这点,比如按F5键,如果该文件是python脚本的话(以py结尾),就尝先将文件保存,然后调用系统中的python来执行当前脚本。
autocmd的命令格式为:
autocmd [group] {event} {pattern} [nested] {cmd}
group及nested均为可选参数,详情请参考:help autocmd. 意思是,当发生event时,对符合pattern的对象执行cmd命令。
示例及解释
比如自动调用python解释器来解释当前编辑的python脚本:
autocmd BufRead *.py nmap <F5> :w<CR>:!python %<CR><CR>
上边这条命令是指,当发生BufRead事件时,对匹配模式(*.py)的缓冲区,执行命令:
nmap <F5> :w<CR>:!python %<CR><CR>
而命令nmap <F5> :w<CR>:!python %<CR><CR>表示:在normal模式下,将F5键映射为:
其中<CR>模拟用户输入回车,!表示执行操作系统中的命令(因此,你需要将python的解释器放入PATH环境变量中,%表示当前的文件名。
BufRead事件发生在"开始编辑新缓冲区,读入文件后",即当vim加载文件完成之后,相当于注册了一个回调函数。因此上边的命令翻译过来就是:
当读入文件内容后,如果文件是是python脚本,就映射键F5为保存并执行。这样,当按F5键时,vim会自动保存文件,并将文件名作为python解释器的参数传递给python,启动一个shell来执行。
效果如下:
可以将上边这个脚本放入.vimrc或者_vimrc(windows下)。
同样,如果想在编辑dot脚本的时候,让vim帮你自动完成调用外部程序(dot)的话,可以这样:
autocmd BufRead *.dot nmap <F8> :w<CR>:!dot -Tpng -o %<.png % && start %<.png<CR><CR>
将F8映射为,先执行:
dot -Tpng -o result.png source.dot
然后在启动的shell中,执行start result.png, start是windows下command.exe的命令,用于重新启动一个shell,如果后边的文件有关联(我的系统中是picasa3),则使用该关联程序打开此文件,也就有了下面的这张图:
如果你有其他好用的工具,如unxutil的windows版本,也可以很容易的使用autocmd命令与vim绑起来,使得开发效率得到极大的提升。
- 大小: 439.6 KB
- 大小: 274.8 KB
分享到:
相关推荐
Python-mode:将 Vim 变成 Python IDE 的一款多合一插件
vim的python调试器,讲解如何使用vim调试python
使用更高效的 Vim 进行开发
mac下vim之python配置步骤,自动缩进,语法高亮,背景,自动补全,文件管理
一个基于Vim的python可视化开发工具
vim 的 python插件,很实用
将vim配置为python的开发平台,本文件自带插件,其中 .vim文件夹下的目录直接拷贝到<vim安装路径>\<vim版本号>下,例如在我的电脑上,就将.vim下的所有目录拷贝至:C:\Program Files\Vim\vim73 即可。 .vimrc文件...
ubuntu中配置vim 打造Python IDE
一个适用于python开发的轻量级的干净的vim配置,附有详细的安装和使用说明
包中包括: python.vim pythoncomplete.vim nerdtree.zip vim-autocomplpop.zip 四个插件及vim官网中对应的说明。 送给那些不能上官网的青年。
centos7 上编译安装 vim8.0 使其支持Python3,通过自定义vim以及安装插件。打造适合自己的vim
为vim配置python自动补全和tab缩进自动转换为空格等功能
使用VIM开发软件项目,非常好的参考资料
当您使用 Vim 打开日志时,它们将如下所示: 对...有用 OpenStack 日志 生成的其他日志 安装 Plugin 'adrienverge/vim-python-logging' git clone https://github.com/adrienverge/vim-python-logging ~/.vim/...
安装完vim插件(使用vi时会报错-由于自己技术能力有限暂时未解决) 使用vim不会报错,可自动缩进以及补全 需要sh或bash安装
最重要的是: foobar(foo, bar)和: foobar( foo, bar)安装使用您喜欢的插件管理器/方法安装插件,以下是一些示例:病原请按照有关安装的说明进行操作,然后: $ cd ~/.vim/bundle$ git clone ...
学习Python在linux平台用vim学习python
针对python的VIM配置文件,包含如何配置YCM过程,具体不懂欢迎咨询。
SimpylFold, Vim无 python 代码折叠 SimpylFold由于它依赖于显著的空白而不是显式块分隔符,正确折叠 python 代码很棘手。 Vim绑定的python 语法定义并不包含任何折叠指令,最简单的解决方法是 set foldmethod=...