我有一个文件,其中一行可以以+-*开头。在其中一些行之间可以有以字母或数字(通用文本)开头的行(也包含这些字符,但不在第1列中!)。

知道了这一点,最简单的方法就是设置匹配和突出显示机制,从而使一条以+开头的行以及所有后续行,直到一行中以+-*开头的行第1栏会以...红色突出显示吗?

欢迎所有想法。

最佳答案

您可以使用:

syntax region MyRegion start=/^+/ end=/\ze\n[-+*]/
hi MyRegion guifg=red ctermfg=red


如果您想将其与当前的配色方案集成,请使用:

hi link MyRegion Keyword


(或注释,标识符,常量等)

注意。这意味着该区域在下一行-+*的下一行之前开始。因此,两个以+开头的区域是连续的,并且您不会注意到突出显示的不同。

如果要从以+开头的行到以+-*开头的行(含)的每个区域,请使用:

syntax region MyRegion start=/^+/ end=/^[-+*].*/

09-27 19:58