我怎样才能让vim对每一个执行shell命令:w?

时间:2015-07-15 19:57:08

标签: vim

基本上,我的代码有一个预处理器,可以读取所有.foo个文件并将它们转换为相应的编译.bar版本,但不会修改任何原件。每次我对源文件进行更改时,我希望在保存完文件后将vim改为!./run-my-preprocessor-script.js。如何才能做到这一点?我只想在编辑名称以.foo结尾的文件时发生这种情况。

由于

1 个答案:

答案 0 :(得分:0)

您可以使用autocmd挂钩BufWritePost事件,如下所示:

autocmd BufWritePost * execute '!ls'

这意味着每次在任何文件上触发BufWritePost(在写入缓冲区之后)事件时,您都将执行命令!ls。只需对保存的*.foo个文件进行操作即可轻松将其专门化:

autocmd BufWritePost *.foo execute '!ls'

现在,仅当写入文件名与表达式!ls匹配的文件时,才会触发命令*.foo

显然,您需要将ls更改为执行预处理程序脚本所执行的操作,但过程是相同的。将修改后的autocmd放入您的.vimrc文件中,它应该可以使用!