Question

J'ai un format de fichier XML personnalisé qui peut contenir des blocs de code dans certaines balises.

Par exemple:

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

Comment puis-je obtenir Vim d'utiliser la syntaxe SQL pour mettre en évidence le texte à l'intérieur des balises et utiliser <Sql> Python higlighting pour le texte à l'intérieur des balises <Python>?

Je sais que Vim peut déjà le faire, car il souligne à juste titre Javascript dans les fichiers HTML.

J'ai essayé d'inspecter le fichier de syntaxe HTML mais ne pouvait pas comprendre.

Était-ce utile?

La solution

Pour votre XML avec l'exemple python vous devez faire quelque chose comme ceci:

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

Ces lignes comprendront la syntaxe XML et la syntaxe de Python, et spécifier une région de python où VIM utilisera la syntaxe de Python au lieu de la syntaxe XML ...

Bien sûr, tout cela est bien documenté dans vim. Voir : il:. Syn-include sur la façon d'inclure des fichiers de syntaxe

Autres conseils

document de cette

scroll top