如何在 Vim 中对嵌入另一种语言源代码中的一种语言的代码片段进行语法高亮?

发布于 2024-07-13 10:26:39 字数 505 浏览 18 评论 0原文

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

例如:

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

如何让 Vim 对 标签内的文本使用 SQL 语法高亮显示,并对 标签内的文本使用 Python 高亮显示?

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

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

I have a custom XML file format which can contain blocks of code within certain tags.

For example:

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

How can I get Vim to use SQL syntax highlighting for the text inside <Sql> tags and use Python higlighting for text inside <Python> tags?

I know Vim can already do this because it correctly highlights Javascript inside HTML files.

I tried inspecting the HTML syntax file but couldn’t figure it out.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不必在意 2024-07-20 10:26:39

对于带有 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 中有详细记录。 请参阅 :he :syn-include 了解如何包含语法文件。

For your XML with python example you would have to do something like this:

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

These lines will include the XML syntax and the python syntax, and the specify a python region where VIM will use the python syntax instead of the XML syntax...

Of course, all this is well documented in VIM. See :he :syn-include on how to include syntax files.

皇甫轩 2024-07-20 10:26:39

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

This document describes how to write your own syntax highlighting. You should probably be able to figure out how the HTML-syntax highlighting works with javascript, with that as a reference.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文