Existe uma maneira de colocar um comentário em um arquivo que o vim processará para definir o tipo de arquivo?

30

Por exemplo, se eu quiser que um arquivo com o nome gitconfig(sem início .) seja reconhecido pelo vim como sendo filetype=gitconfig, existe um meio de indicar isso em um comentário ou algo semelhante no próprio arquivo? Observe que eu quero que isso funcione em todos os sistemas, portanto, modificar os arquivos de inicialização do vim não é o preferido.

Murali Suriar
fonte

Respostas:

45

Isso soa como o modelinerecurso (consulte a ajuda on-line). No gitconfig, você pode ter uma modelagem como a seguinte, perto do início ou do final do arquivo:

# vi: ft=gitconfig

Isso requer que os modelos sejam ativados e, como podem ser um risco à segurança, eles são desativados por padrão em muitos sistemas.

Outra abordagem que pode ser um pouco mais trabalhosa é criar um .vimarquivo contendo

au BufRead,BufNewFile */gitconfig setfiletype gitconfig

e solte-o em ~/.vim/ftdetecttodos os seus sistemas.

jw013
fonte
Perfeito, modelo é o que eu estava procurando. modeline está ativado, mas parece que outra coisa na minha configuração está interferindo. Se eu colocar sua linha sugerida na parte superior do arquivo, depois que a reabrir, ela set filetype?revelará o tipo de arquivo 'conf'.
Murali Suriar 31/08
Talvez você possa usar :verbose set filetypepara ver de onde confvem o valor - eu acho que as configurações de tipo de arquivo padrão do sistema do vim em algum lugar.
Jw013
aparentemente foi definido pela última vez em /usr/share/vim/vim73/filetype.vim. Por que a detecção de tipo de arquivo no nível do sistema substitui a diretiva que eu coloquei no próprio arquivo?
Murali Suriar
você estava executando o vim como root? se sim, acho que a modelina não carregaria.
Elias
Verifique também o valor da modelinesopção. :set modelines?Se estiver definido como zero, não processará a modelagem.
Christian Long
1

Você pode criar um arquivo de sintaxe e colocá-lo no share/syntaxdiretório vim (no Debian Lenny é /usr/share/vim/vim71/syntax(sua distribuição pode variar)).

A documentação sobre o formato de sintaxe do Vim está aqui: http://vimdoc.sourceforge.net/htmldoc/syntax.html

Você pode encontrar um arquivo de sintaxe pronto na Internet em algum lugar, mas deixarei isso como um exercício para você.

bahamat
fonte