假设有以下文本文件:
A
B
或者换句话说,一个仅包含字符串的文件A\nB
。
让我们看看我是否可以匹配任何B
以A
和换行符开头的字符。很简单。我可以使用/
-search 成功完成此操作:/A\n\zsB
.B
现在突出显示。
但我真正想要做的是将语法突出显示应用于B
。因此,我尝试了:syn match Statement 'A\n\zsB'
,但这没有任何效果。有人知道为什么吗?
(并且只是为了抢先提出建议,我可能没有正确打开语法突出显示::syn match Statement 'A\n\B'
做按预期工作:A
并B
改变颜色。)
答案1
这是有记录的行为。请参阅:help :syn-multi-line
此处引用的内容:
When using a start pattern with an offset, the start of the match is not
allowed to start in a following line. The highlighting can start in a
following line though. Using the "\zs" item also requires that the start
of the match doesn't move to another line.
解决方案是指定突出显示的开始位置,而不是匹配的开始位置。例如:
:syn match Statement 'A\nB'hs=e-1
看:help :syn-pattern-offset
。