gpt4 book ai didi

vim - 如何有一个 Vim 多行语法高亮子句?

转载 作者:行者123 更新时间:2023-12-04 14:42:30 25 4
gpt4 key购买 nike

我正在尝试为包含三种不同类型的列表元素(分别以 -、o 和 x 开头)的微小文本格式编写语法突出显示模块,并且我想根据它们的种类突出显示条目。对于单行很容易,我只使用 syn match myGroup /^\s\+- .\+/我已经完成了。

问题是,我一直在尝试这样做,以便没有列表标记的下一行保持与起始列表项行相同的颜色,但没有成功。我一直在尝试使用语法区域来做到这一点,但我似乎无法理解它们是如何工作的。

更准确地说,这是我想要达到的输出:
enter image description here

如果需要对文件格式进行任何更改以使其更容易/可能,我可以自由更改它。

我怎么能得到它的任何线索?

最佳答案

你可以尝试这些方面的东西

syntax region Minus_Region start=/^\s\+-/ end=/;/
hi Minus_Region guifg='Yellow'

syntax region O_Region start=/^\s\+o/ end=/;/
hi O_Region guifg='Green'

syntax region X_Region start=/^\s\+x/ end=/;/
hi X_Region guifg='Gray'

无论涉及多少行,您都可以通过它的开始和结束来定义区域(在本例中为 ; )。

有关详细信息,请参阅帮助
  • :h syn-region

  • 如果您想在没有结束标记字符的情况下完成区域(在本例中为 ; ),您可以在区域的 end 参数上使用 match-end ( me ) 选项并让区域结束在下一个区域开始标记上。例子:
    syntax region Minus_Region start=/^\s\+- / end=/^\s\+[-ox] /me=s-1

    syntax region O_Region start=/^\s\+o / end=/^\s\+[-ox] /me=s-1

    syntax region X_Region start=/^\s\+x / end=/^\s\+[-ox] /me=s-1
    me=s-1 part 表示“真正的匹配结束于模式匹配开始位置左侧的一个字符”。

    关于vim - 如何有一个 Vim 多行语法高亮子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33651643/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com