【问题标题】:How to automatically execute a shell command after saving a file in Vim?在 Vim 中保存文件后如何自动执行 shell 命令?
【发布时间】:2011-01-07 16:26:59
【问题描述】:

这是因为我想在每个文件保存后自动运行测试。

我查看了autocmdBufWritePost,但无法使用。

【问题讨论】:

    标签: vim autocmd


    【解决方案1】:

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

    :autocmd BufWritePost * !run_tests.sh <afile>
    

    查看自动命令:

    :autocmd BufWritePost *
    

    并删除之前的所有自动命令:

    :autocmd! BufWritePost *
    

    【讨论】:

    • 有没有办法做到这样的事情?:如果当前目录或上面的目录中存在名为 tests.html 的文件,则运行命令 testprog tests.html OR cd .. testprog测试.html ?
    • @Running Turle:我会为此创建一个函数,然后在自动命令中使用它。使用filereadable()测试是否有文件,然后采取相应措施。
    • 如何在后台安静地执行此操作,以免获得输出?
    • @botenvouwer 试试:autocmd BufWritePost * silent !run_tests.sh &lt;afile&gt;。输出仍将写入控制台,但 vim 不会等待您确认。向您的特定命令发送“安静”/“静音”选项,或在需要时添加&gt;/dev/null 以黑洞其输出。
    • 在保存之前是BufWritePre
    猜你喜欢
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多