Como usar o FileType no Vim?

3

Na maioria dos casos, quero usar tabstop=4 ao editar arquivos. Mas para alguns tipos de arquivo, como o arquivo xml, quero usar tabstop=2 .

eu adicionei

au filetypedetect FileType xml,html,xhtml,javascript set tabstop=2 softtabstop=2 shiftwidth=2

no meu arquivo .vimrc . Funciona se eu estiver editando apenas um arquivo. Mas se eu estiver editando vários arquivos, ele não poderá definir as paradas de tabulação corretamente para todos os buffers. Parece que o tipo de arquivo é detectado e definido apenas na inicialização e nunca muda desde.

Eu quero o FileType definido toda vez que eu alternar o buffer. Como posso fazer isso?

    
por davidshen84 03.05.2011 / 11:39

1 resposta

2

Não sei por que sua versão não está funcionando, mas posso fazer isso usando a opção call e colocando as configurações em uma função como esta:

set tabstop=4
set softtabstop=4
set shiftwidth=4

function! setAltPrefs()
    set tabstop=2
    set softtabstop=2
    set shiftwidth=2
endfunction

autocmd FileType xml,html,xhtml,javascript call setAltPrefs()

Isso deve ser acionado sempre que um arquivo é carregado em um buffer ou o tipo de arquivo é alterado. A única captura seria se você alterar um buffer de um dos tipos personalizados de volta para um que deve ser apenas padrões. Nesse caso, nada mudará. Você teria que configurar outra função para acionar todos os tipos de arquivo, caso precise cobrir esse caso de uso.

    
por 03.05.2011 / 11:46

Tags