基于行首的Vim匹配

4
我有一个文件,其中一行可以以+-*开头。在其中一些这样的行之间,可能会有一些以字母或数字(一般文本)开头的行(也包含这些字符,但不在第一列!)。
了解了这一点,最简单的设置匹配和高亮机制的方法是什么,这样以+开头的行和所有随后的行直到带有+-*的行为止,将被突出显示为...红色?
欢迎各种想法。
1个回答

4

您可以使用以下方法:

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

如果您想将其与当前的颜色方案集成在一起,最好使用以下方式:
hi link MyRegion Keyword

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

注意。这意味着该区域在下一行以-+*开头的行的前面结束。因此,以+开头的两个区域是连续的,在高亮显示上不会有任何区别。

如果您希望每个区域从以+开头的行开始,到以+-*开头的行(包括)结束,则使用:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接