我在语法偏移方面遇到了很多麻烦,而且我不理解Vim帮助文档中给出的解释。
我的PHP ftplugin中有以下内容:
syntax region mySQLRegion
\ contains=@SQLSyntax
\ containedin=phpRegion
\ contained
\ matchgroup=sqlDelim
\ start=+\vSQL\("$+
\ end=+^\s*"[,)]+
\ keepend
我希望匹配以下代码构造:
... SQL("
...my sql here...
", ...
目前这有效。但我希望突出显示在两个分隔线之间 - 换句话说,我希望使用标准的PHP突出显示突出显示前导SQL("
和结束",
。
我已经尝试了几种不同的偏移排列,但是文件的其余部分都使用SQL突出显示着色,或者SQL块被着色为PHP字符串。我特别想要找到这个问题的答案,以及如何考虑何时使用ms
/ me
与rs
/ {{ 1}}与re
/ hs
对比,在这些情境中使用he
或=s+/-{nr}
是有意义的。我认为它应该是匹配,区域和突出显示,并且它的开始和结束在任一方向上都被许多字符偏移,但我显然不能正确理解它因为我的尝试都没有成功。