Come faccio a sapere quale file di sintassi viene utilizzato?


50

Vim sta sintattizzando il mio file in modo divertente e voglio sapere quale file di sintassi è responsabile di questo comportamento. Come faccio a sapere quali file di sintassi sono stati caricati da vim?

Risposte:


39

Per scoprire quali file Vim ha effettivamente caricato, esegui

:scriptnames

Questo è utile Ora, ecco qualcosa di cui non sono sicuro: se un file di sintassi appare in questo elenco, è garantito che il file di sintassi sia "attivo"? Riesco a vedere alcuni file di sintassi qui.
Edward Z. Yang,

7
In genere, solo l'ultimo elencato è "attivo" e potrebbe non esserlo anche se hai disattivato l'evidenziazione della sintassi. Per visualizzare la sintassi attualmente attiva, eseguire :echo b:current_syntax. Per vedere gli elementi di sintassi attualmente attivi, fai come suggerito da Ingo ed esegui :syntax list. Quest'ultimo può aiutare se sono attivi elementi di sintassi da più di un file di sintassi, come notato da Ingo.
garyjohn il

1
Su Mac OS XI modificato il /usr/share/vim/vim73/filetype.vim. Dopo aver usato il comando sopra ho capito che stava usando la versione di MacVim su ~/Applications/MacVim.app/Contents/Resources/vim/runtime/filetype.vim. Se hai installato MacVim, assicurati di modificare il file corretto.
echamber

1
È possibile che siano caricati due file di sintassi con lo stesso nome. Ad esempio, vim viene fornito con l'evidenziazione della sintassi per ColdFusion, ( /usr/share/vim/vim81/syntax/cf.vimper me). Ho installato un cf.vim personalizzato perché quello standard è datato. :scriptnamesmostra entrambi i file. L'impostazione predefinita è inferiore nell'elenco degli script; tuttavia, viene utilizzato il primo. Se guardi /usr/share/vim/vim81/syntax/cf.vim, c'è una guardia if exists("b:current_syntax") finish endif. Quindi, nel mio caso, è scriptnamesstato utile, ma ho dovuto scavare un po 'più a fondo.
Avejidah,

31

La sintassi per il buffer corrente può essere interrogata tramite

:setlocal syntax?

Di solito (ma non necessariamente) corrisponde al tipo di file del buffer ( :setlocal filetype?).

Per uno sguardo più profondo,

:syntax list

mostra tutte le definizioni di sintassi (alcune sintassi (possono) includono sintassi di altre lingue, ad esempio javaha htmlper il markup dei commenti JavaDoc).


Questo è quello che sono venuto alla ricerca in base al titolo della domanda di OP. OP ovviamente chiarisce nella descrizione che sta cercando il file di sintassi attuale, ma apprezzo che tu abbia lasciato questo qui poiché è una delle prime risposte nei motori di ricerca.
verboze

4

È possibile visualizzare quali tipi di file sono attualmente utilizzati e da

:verbose set ft ?

Il plugin che gestisce il tipo di file si trova probabilmente su

:e $VIMRUNTIME\ftplugin
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.