考虑以下最小的vimrc:
set nocompatible
function! OpenBuffer()
execute "silent botright 2new empty_buffer"
call append(line('$'), "This should only show up when running GrepFixme()")
normal dd
endfunction
function! GrepTodo()
execute "vimgrep/TODO/j %"
endfunction
function! GrepFixme()
execute "vimgrep/FIXME/j %"
endfunction
augroup test_au
au!
au QuickFixCmdPost vimgrep call OpenBuffer()
augroup END
" TODO: foo
" FIXME: bar
正如在GIF中可以看到的那样,QuickFixCmdPost
自动命令被触发
当我调用GrepFixme()
或GrepTodo()
函数时。我想要
仅在我调用QuickFixCmdPost
时触发GrepFixme()
自动命令
函数而不是当我调用GrepTodo()
函数时。有没有办法去
实现那个?
答案 0 :(得分:1)
您可以使用:noautocmd
或设置'eventignore'
来阻止autocmd触发。例如:
:noautocmd vimgrep/foo/
如需更多帮助,请参阅:
:h :noa
:h 'eventingore'