Domanda

Ho un formato di file XML personalizzato che può contenere blocchi di codice all'interno di alcuni tag.

Ad esempio:

<Root>
    <Sql> select * from foo </Sql>
    <MoreJunk> ... </MoreJunk>
    <Python><![CDATA[
    def Bar(*args):
        return False
    ]]></Python>
</Root>

Come posso ottenere Vim per utilizzare la sintassi SQL evidenziazione per il testo all'interno <Sql> tag e utilizzare Python come evidenziare per il testo all'interno <Python> tag?

Lo so Vim può già fare questo perché evidenzia correttamente JavaScript all'interno di file HTML.

Ho provato a ispezionare il file di sintassi HTML, ma non riuscivo a capire.

È stato utile?

Soluzione

Per la vostra XML con l'esempio di pitone che avrebbe dovuto fare qualcosa di simile:

runtime! syntax/xml.vim
unlet b:current_syntax
syntax include @Python syntax/python.vim
syntax region pythonCode  start=+<Python>+ keepend end=+/</Python>+  contains=@Python

Queste linee includeranno la sintassi XML e la sintassi di Python, e la specifica di una regione in cui pitone VIM utilizzerà la sintassi di Python al posto della sintassi XML ...

Naturalmente, tutto questo è ben documentato in VIM. Vedere : lui:. Syn-include su come includere i file di sintassi

Altri suggerimenti

descrive come scrivere il proprio evidenziazione della sintassi. Probabilmente si dovrebbe essere in grado di capire come l'evidenziazione della sintassi HTML funziona con javascript, con che come riferimento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top