Pergunta

Eu tenho um formato de arquivo XML personalizado que pode conter blocos de código dentro de certos tags.

Por exemplo:

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

Como posso obter Vim à sintaxe SQL uso realça para o texto dentro de tags <Sql> e usar Python higlighting para o texto dentro de tags <Python>?

Eu sei Vim já pode fazer isso porque corretamente destaca Javascript dentro de arquivos HTML.

Eu tentei inspecionar o arquivo de sintaxe HTML, mas não conseguiu descobrir.

Foi útil?

Solução

Para sua XML com o exemplo de python você teria que fazer algo como isto:

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

Estas linhas irão incluir a sintaxe XML ea sintaxe python, ea especificar uma região de python, onde VIM usará a sintaxe python em vez do XML sintaxe ...

Claro, tudo isso está bem documentado na VIM. Veja : ele:. Syn-incluem sobre como incluir arquivos de sintaxe

Outras dicas

Este documento descreve como escrever o seu próprio destaque de sintaxe. Você provavelmente deve ser capaz de descobrir como o HTML-destaque de sintaxe funciona com javascript, com isso como uma referência.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top