Existe-t-il un moyen de placer un commentaire dans un fichier que vim traitera afin de définir le type de fichier?

30

Par exemple, si je veux qu'un fichier portant le nom gitconfig(sans interligne .) soit reconnu par vim comme étant de filetype=gitconfig, existe-t-il un moyen de l'indiquer dans un commentaire ou quelque chose de similaire dans le fichier lui-même? Remarque, je veux que cela fonctionne sur tous les systèmes, donc la modification des fichiers de démarrage de vim n'est pas préférée.

Murali Suriar
la source

Réponses:

45

Cela ressemble à la modelinefonctionnalité (voir l'aide en ligne). Dans gitconfig, vous pouvez avoir une modélisation comme celle-ci, près du début ou de la fin du fichier:

# vi: ft=gitconfig

Cela nécessite l'activation des modèles et, comme ils peuvent constituer un risque pour la sécurité, ils sont désactivés par défaut sur de nombreux systèmes.

Une autre approche qui pourrait être légèrement plus longue consiste à créer un .vimfichier contenant

au BufRead,BufNewFile */gitconfig setfiletype gitconfig

et déposez-le ~/.vim/ftdetectsur tous vos systèmes.

jw013
la source
Parfait, la modeline est ce que je cherchais. la modeline est activée, mais il semble que quelque chose d'autre dans ma configuration interfère avec elle. Si je mets votre ligne suggérée en haut du fichier, puis après que je l'ai rouverte, elle set filetype?révèle le type de fichier 'conf'.
Murali Suriar
Peut-être que vous pouvez utiliser :verbose set filetypepour voir d'où confvient la valeur - je suppose que les paramètres de type de fichier par défaut du système de vim quelque part.
jw013
apparemment, il a été défini pour la dernière fois à partir de /usr/share/vim/vim73/filetype.vim. Pourquoi la détection de type de fichier au niveau du système remplacerait-elle la directive que j'ai placée dans le fichier lui-même?
Murali Suriar
exécutiez-vous vim en tant que root? si oui, je pense que la modeline ne se chargerait pas.
elias
Vérifiez également la valeur de l' modelinesoption. :set modelines?S'il est défini sur zéro, il ne traitera pas la modélisation.
Christian Long
1

Vous pouvez créer un fichier de syntaxe et le placer dans le share/syntaxrépertoire de vim (sur Debian Lenny c'est /usr/share/vim/vim71/syntax(votre distribution peut varier)).

La documentation sur le format de syntaxe de Vim est ici: http://vimdoc.sourceforge.net/htmldoc/syntax.html

Vous pourrez peut-être trouver un fichier de syntaxe prêt sur Internet quelque part, mais je vous laisse cela comme un exercice.

bahamat
la source