代码之家  ›  专栏  ›  技术社区  ›  HS.

Vim中的嵌入式语法高亮显示

  •  13
  • HS.  · 技术社区  · 17 年前

    我有一个自定义的XML文件格式,可以在某些标签中包含代码块。

    例如:

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

    如何让Vim对内部文本使用SQL语法高亮显示 <Sql> 标记并使用Python高亮显示内部文本 <Python> 标签?

    我知道Vim已经可以做到这一点,因为它正确地突出显示了HTML文件中的Javascript。

    我试着检查HTML语法文件,但无法弄清楚。

    2 回复  |  直到 5 年前
        1
  •  29
  •   f3lix    17 年前

    对于使用python的XML示例,您必须执行以下操作:

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

    这些行将包括XML语法和python语法,并指定一个python区域,VIM将在该区域使用python语法而不是XML语法。..

    当然,所有这些在VIM中都有很好的记录。看见 他:syn包括 关于如何包含语法文件。

        2
  •  2
  •   Brian M. Hunt    15 年前

    document 描述了如何编写自己的语法高亮显示。您应该能够弄清楚HTML语法高亮显示如何与javascript一起工作,并将其作为参考。