sintassi incorporato evidenziando in Vim
-
21-08-2019 - |
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.
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