Como desabilitar o autocmd ou o augroup no vim?

17

Dado que tenho um grupo de comandos como:

augroup MyGroup
  autocmd CursorMoved * silent call MyCommandOne()
augroup END

Desejo desativar todos os comandos automáticos no MyGroup por um tempo e reativá-lo mais tarde.

Existe algo que eu possa fazer com o grupo? Especificamente, existe uma maneira de desativar todo o grupo de uma só vez? Se não, o que posso fazer para desativar comandos individuais?

Olhando para a ajuda, vejo apenas algumas opções:

  • augroup! excluirá todo o grupo: não acho que isso esteja certo, pois desejo reativá-lo novamente. (Mas talvez haja uma maneira de redefinir facilmente o grupo de novo?)
  • :noautocmd desativará somente os retornos de chamada para uma chamada única de um comando. (E desabilita todos autocmds, não especificados)
  • eventignore endereça a ligação do evento, não o comando: parece que desativa todos os comandos ligados para um determinado evento, não apenas um comando ou um grupo que eu possa especificar.

Como isso é feito?

    
por Andrew Vit 20.06.2012 / 04:51

2 respostas

14

De :help autocmd :

If you want to skip autocommands for one command, use the :noautocmd command
modifier or the 'eventignore' option.

De :help :noautocmd :

To disable autocommands for just one command use the ":noautocmd" command
modifier.  This will set 'eventignore' to "all" for the duration of the
following command.  Example:

    :noautocmd w fname.gz

This will write the file without triggering the autocommands defined by the
gzip plugin.

Então parece que :noautocmd é o que você está procurando.

Em que contexto você deseja desabilitar um augroup ?

    
por 20.06.2012 / 09:33
8

De aqui , parece que isso é alcançado:

:augroup Foo
:autocmd BufEnter * :echo "hello"
:augroup END

...

:autocmd! Foo BufEnter *
    
por 19.02.2014 / 19:18

Tags