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.

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.


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.