1

我有这样的代码:

# some comment
comment  This is a comment \
         that continues.
keyword option=3.123e4

注释以“#”或“comment”开头,可以以“\”和换行符继续。我想匹配最后一个“\”之后的下一行,或者直到列表中的一个关键字。这是我所拥有的:

syn match atlasComment "#.*$"
syn match atlasComment "comment.*$"
syn keyword myKeyword keyword anotherKW nextgroup=myOption skipwhite
syn keyword myOption option

是否可以使用从“评论”到突出显示的关键字列表中的特定关键字的范围?或者,还有更好的方法?

4

1 回答 1

1

您会在 中找到一些有用的提示:help :syn-oneline

“oneline”参数表示该区域不跨越线边界。它必须在当前行中完全匹配。但是,当该区域包含的项目确实跨越了行边界时,它无论如何都会在下一行继续。包含的项目可用于识别续行模式。

这导致以下解决方案:

:syn region atlasComment start="comment" end="$" oneline contains=atlasCommentContinuation
:syn match atlasCommentContinuation "\\$" contained
于 2012-12-10T16:49:29.643 回答