sábado, 28 de março de 2009

Definindo um autocomando

Um autocomando é um comando que é executado automaticamente em resposta a algum
evento, tais como um arquivo ser lido ou gravado ou um buffer ser mudado.

O formato geral de um autocomando é:
:autocmd grupo eventos padrão-de-arquivo nested comando
Grupo é opcional. É usado para gerenciar e chamar os comandos.
Eventos é uma lista de eventos que disparam o comando.
Padrão-do-arquivo é um nome de arquivo, possivelmente com wildcards.
Nested é uma flag para aninhar autocomandos.
Comando é o comando a ser executado.

Suponha que você quer mudar o timestamp no final do arquivo cada vez que é
gravado.

Primeiro você define uma função:
:function DateInsert()
: $delete
: read !date
:endfunction
Voce quer que essa função seja chamada a cada vez, exatamente antes que um
arquivo é gravado.
Use isso:
:autocmd FileWritePre * call DateInsert()
"FileWritePre" é o evento que irá disparar o autocomando: Exatamente antes (pre)
de gravar o arquivo.

'*' é um padrão para selecionar pelo nome de arquivo. No caso, todos arquivos.

Com esse comando ativo, quando voce fizer um ':write' o vim verifica se há
quaisquer autocomandos 'FileWritePre' correspondentes e executa-os.

Use o autocomando de qualquer arquivo ('*') em primeiro lugar. Depois os
autocomandos por tipo de arquivo ('c,cpp'). Isso permite definir definições
gerais serem sobrepostas pelas definições específicas seguintes.

0 comentários:

Postar um comentário