基于行首的Vim匹配

基于行首的Vim匹配,vim,Vim,我有一个文件,其中一行可以以+、-或*开头。在其中一些行之间可能有以字母或数字(一般文本)开头的行(也包含这些字符,但不在第1列!) 知道了这一点,设置匹配和突出显示机制的最简单方法是什么,以便在第1列中突出显示以+开头的行以及所有后续行,直到第1列中包含+、-或*的行。。。红色 欢迎所有想法。您可以使用: syntax region MyRegion start=/^+/ end=/\ze\n[-+*]/ hi MyRegion guifg=red ctermfg=red 如果要将其与当前配

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

知道了这一点,设置匹配和突出显示机制的最简单方法是什么,以便在第1列中突出显示以
+
开头的行以及所有后续行,直到第1列中包含
+
-
*
的行。。。红色

欢迎所有想法。

您可以使用:

syntax region MyRegion start=/^+/ end=/\ze\n[-+*]/
hi MyRegion guifg=red ctermfg=red
如果要将其与当前配色方案集成,请使用:

hi link MyRegion Keyword
(或注释、标识符、常量等)

注意。这意味着该区域在下一行
-
+
*
之前的行上结束。因此,以
+
开头的两个区域是连续的,您不会注意到高亮显示的差异

如果希望每个区域从以
+
开头的行到以
+
开头的行(包括)、
-
*
开头的行(),请使用:

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