Conformément à la réponse acceptée à cette question , j'essaie d'utiliser des modèles dans vim pour forcer la détection de type de fichier dans certains fichiers.
Par exemple, en haut d'un fichier nommé gitconfig
(notez qu'il n'y a pas de début .
), j'ai la ligne suivante:
# vim: set filetype=gitconfig :
modeline
est activé sur mon système. Cependant, lorsque j'ouvre le fichier dans vim, set filetype?
renvoie conf
, plutôt que prévu gitconfig
.
Est-il possible que d'autres parties de ma configuration vim (par exemple filetype.vim) provoquent ce comportement étrange?
Modifié en réponse aux commentaires:
set compatible?
Retour nocompatible
set modeline?
Retour modeline
verbose set filetype?
Retour:
filetype=conf
Last set from /usr/share/vim/vim73/filetype.vim
Je ne comprends pas pourquoi le plugin de type de fichier à l'échelle du système remplacerait ce que j'ai défini dans le fichier lui-même.
Une dernière remarque: il s'agit de la version de Vim 7.3 livrée avec OSX.
La dernière version de MacVim fonctionnant sur le même système utilisant le même .vimrc
comportement que prévu, avec set ft?
retour filetype=gitconfig
.
set modeline?
cela ne s'imprime pasnomodeline
?compatible
est définie. Cela vaut également la peine d'être vérifié.Réponses:
Ainsi, après quelques recherches, il s'avère que le système
vimrc
livré avec OSX définit lamodelines
variable (notez les derniers) à 0. Cette variable contrôle le nombre de lignes dans un fichier dont les commandes set sont vérifiées. La définition des modelines à une valeur non nulle dans mon a.vimrc
résolu le problème.Sortie complète, pour les curieux: la sortie de
vim --version
m'a incité à vérifier le système vimrc:En regardant le système vimrc:
M'a conduit à la
modelines
variable. Il semble que MacVim ne source pas ce fichier système (peut-être à la recherche d'un système GVIMRC à la place? N'est:help startup
pas clair).la source
Pour que cela fonctionne sur mon système macOS, j'ai dû définir quelques paramètres dans ~ / .vimrc:
Où ' modeline ' permet d'utiliser des paramètres dans le fichier et ' modelines = # ' définit le nombre de lignes que vim / vi vérifiera pour les commandes set.
Une fois ces paramètres définis, j'ai pu utiliser la syntaxe comme la ligne ci-dessous dans mes fichiers pour remplacer les paramètres définis.
la source