Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Vim中保存文件后自动执行shell命令?_Vim_Autocmd - Fatal编程技术网

如何在Vim中保存文件后自动执行shell命令?

如何在Vim中保存文件后自动执行shell命令?,vim,autocmd,Vim,Autocmd,这是因为我希望在每次文件保存后自动运行测试 我已经查看了autocmd和BufWritePost,但无法使其工作。在保存任何文件后运行run\u tests.sh,当前文件名作为唯一参数: :autocmd BufWritePost * !run_tests.sh <afile> 并使用以下命令从上一个中删除所有自动命令: :autocmd! BufWritePost * 有什么方法可以这样做吗?:如果当前目录或上面的目录中存在名为tests.html的文件,请运行命令testp

这是因为我希望在每次文件保存后自动运行测试


我已经查看了
autocmd
BufWritePost
,但无法使其工作。

在保存任何文件后运行
run\u tests.sh
,当前文件名作为唯一参数:

:autocmd BufWritePost * !run_tests.sh <afile>
并使用以下命令从上一个中删除所有自动命令:

:autocmd! BufWritePost *

有什么方法可以这样做吗?:如果当前目录或上面的目录中存在名为tests.html的文件,请运行命令testprog tests.html或cd。。testprog tests.html?@Running Turle:我会为此创建一个函数,然后在autocmd中使用它。使用
filereadable()
测试是否存在文件,然后采取相应的措施。这是可行的,但如果要传递文件的完整路径,该怎么办。可能吗?如何在后台安静地执行此操作,这样您就不会得到输出?对于保存之前,它是
BufWritePre
:autocmd! BufWritePost *