VIM:结合自动命令?(Vim: Combining autocmd?)

2019-08-02 02:29发布

我需要做的逻辑和两个自动命令事件在vim。 基本上,该命令具有对一个InsertLeave运行时的文件类型为TEX。 看起来这应该工作(在.vimrc里):

autocmd FileType tex :autocmd InsertLeave :w

但事实并非如此。 嵌套选项似乎没有任何帮助,即使手动表明它应该。

它很容易做逻辑或:

autocmd BufEnter,BufLeave ...

它不能是太难做了逻辑与。

Answer 1:

我有一个校正@Eevee答案:使自动命令的工作只有一个缓冲区,你应该使用

augroup TexAutoWrite
    autocmd FileType tex :autocmd! TexAutoWrite InsertLeave <buffer> :update
augroup END

见`:H自动命令,buflocal。



Answer 2:

InsertLeave仍然需要一个参数。

这对我的作品:

autocmd FileType tex :autocmd InsertLeave * :w

请注意,这种行为将继续,如果你以后编辑非tex在同一个缓冲文件。 我不知道是否有一个简单的方法编辑任何东西,但某种类型的文件时将其删除。



Answer 3:

您可以使用autocmnd的模式选择。

autocmd InsertLeave *.tex w


文章来源: Vim: Combining autocmd?
标签: vim autocmd