Comment savoir quel fichier de syntaxe est utilisé?

50

Vim est la syntaxe soulignant mon fichier d'une manière amusante, et je veux savoir quel fichier de syntaxe est responsable de ce comportement. Comment savoir quels fichiers de syntaxe ont été chargés par vim?

Edward Z. Yang
la source

Réponses:

39

Pour savoir quels fichiers ont été chargés par Vim, exécutez

:scriptnames
Garyjohn
la source
C'est utile. Maintenant, voici quelque chose dont je ne suis pas sûr: si un fichier de syntaxe apparaît dans cette liste, est-il garanti que le fichier de syntaxe est "actif"? Je peux voir pas mal de fichiers de syntaxe ici.
Edward Z. Yang
7
En règle générale, seul le dernier élément répertorié est "actif", même si vous avez désactivé la coloration syntaxique. Pour voir la syntaxe actuellement en vigueur, exécutez :echo b:current_syntax. Pour voir les éléments de syntaxe actuellement en vigueur, faites comme suggéré par Ingo et exécutez-les :syntax list. Ce dernier peut être utile si les éléments de syntaxe de plusieurs fichiers de syntaxe sont en vigueur, comme indiqué par Ingo.
garyjohn
1
Sur Mac OS XI modifié le /usr/share/vim/vim73/filetype.vim. Après avoir utilisé la commande ci-dessus, j’ai réalisé qu’il utilisait la version de MacVim sur ~/Applications/MacVim.app/Contents/Resources/vim/runtime/filetype.vim. Si vous avez installé MacVim, assurez-vous de modifier le fichier correct.
echamber
1
Vous pouvez avoir deux fichiers de syntaxe chargés qui portent le même nom. Par exemple, vim est livré avec la coloration syntaxique pour ColdFusion ( /usr/share/vim/vim81/syntax/cf.vimpour moi). J'ai installé un cf.vim personnalisé car le standard est daté. :scriptnamesmontre les deux fichiers. La valeur par défaut est inférieure dans la liste de scripts. cependant, le premier est utilisé. Si vous regardez /usr/share/vim/vim81/syntax/cf.vim, il y a un garde if exists("b:current_syntax") finish endif. Donc, dans mon cas, cela a scriptnamesété utile, mais j'ai dû approfondir un peu.
Avéjidah
31

La syntaxe du tampon actuel peut être interrogée via

:setlocal syntax?

Il correspond généralement (mais pas nécessairement) au type de fichier du tampon ( :setlocal filetype?).

Pour un regard plus profond,

:syntax list

affiche toutes les définitions de syntaxe (certaines syntaxes (peuvent) incluent les syntaxes d'autres langages, par exemple, javahas htmlpour le balisage de commentaire JavaDoc).

Ingo Karkat
la source
C'est ce que je suis venu chercher sur la base du titre de la question de OP. OP, bien sûr, précise dans la description qu'il cherche le fichier de syntaxe actuel, mais j'apprécie que vous le laissiez ici car c'est l'une des premières réponses des moteurs de recherche.
verboze
4

Vous pouvez voir quels types de fichiers sont actuellement utilisés et par

:verbose set ft ?

Le plugin manipulant le type de fichier est probablement situé à

:e $VIMRUNTIME\ftplugin
Lieven Keersmaekers
la source