gpt4 book ai didi

vim - 在 :wq - vimscript? 上执行命令的 autocmd 事件

转载 作者:行者123 更新时间:2023-12-04 16:00:06 26 4
gpt4 key购买 nike

当我使用 :wq 退出 vim 时,我想执行 system("cp/home/currently_opened_file.txt/somewhere/else")。是否有 autocmd 事件?或者有其他方法吗?

最佳答案

更新:

OP 在评论中指出,这种组合完全符合要求(仅在 :wq 上执行命令)。

:autocmd BufWritePost * :autocmd VimLeave * :!cp % /somewhere/else

原始答案:

您可以 Hook BufWritePost 事件。这将在每次 写入时运行该命令,而不仅仅是在您使用:wq 离开文件时。

:autocmd BufWritePost * :!cp % /somewhere/else

我想您可以尝试 Hook BufDelete 事件 (在从缓冲区列表中删除缓冲区之前),但这似乎会有问题,因为使用了缓冲区不仅仅是文件编辑器。它们还用于快速列表、帮助查看器等。

有些事件会在您退出时发生,这可能是一个选项。

QuitPre        when using :quit, before deciding whether to quit
VimLeavePre before exiting Vim, before writing the viminfo file
VimLeave before exiting Vim, after writing the viminfo file

您可以使用 :help autocmd-events 查看完整列表。

另请注意,您可以限制匹配事件的内容。例如,如果您只希望 HTML 文件和 CSS 文件发生这种情况,您可以使用:

:autocmd QuitPre *.html,*.css :!cp % /somewhere/else

我怀疑您需要进行试验,看看什么对您有用。

关于vim - 在 :wq - vimscript? 上执行命令的 autocmd 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39100915/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com