Vim语法突出显示继续注释直到下一个关键字

时间:2012-12-10 16:14:23

标签: regex vim syntax-highlighting

我有这样的代码:

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

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

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

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

1 个答案:

答案 0 :(得分:1)

您可以在:help :syn-oneline找到一些有用的提示。

  

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

这导致以下解决方案:

:syn region atlasComment start="comment" end="$" oneline contains=atlasCommentContinuation
:syn match atlasCommentContinuation "\\$" contained