如何禁用自动命令以进入/离开窗口,例如“:help”、“:NERDTree”或“:TlistOpen”?
现在我在调用这些命令之前和之后修改了“eventignore”(除了“:help”,我还不知道该怎么做),但是在用“CTRL”四处移动时我不知道怎么做-w”,因此,每次我进入和离开这些窗口时都会触发我的 autocmd。
我想这些窗口的一个共同点是它们是只读的或者对我可以执行的操作有限制。如果我能得到这些信息,我可能会在我的 autocmd 周围放置一个 if 语句。
首先,设置一些缓冲区局部变量:
augroup MyAutocommands
au!
au BufNewFile,BufRead * let b:my_autocommands = DoMyAutocommands()
" other autocommands
augroup END
创建DoMyAutocommands
函数。对于初学者,
function! DoMyAutocommands()
if @buftype == 'help'
return 1
endif
" other conditions ...
return 0
endfun
然后,您的每个自动命令或它们调用的函数都可以检查exists('b:my_autocommands') && b:my_autocommands
.