Vimscript编程指南

更加高级的语法高亮

语法高亮是一个很广泛的主题,它的内容很容易就能写满一本书。

我们现在来讨论最后一个重要的内容,然后继续学习其他的内容。如果你想要学习更多的内容的话,你可以阅读:help syntax文档,同时你也可以参考其他人写的语法高亮文件。

高亮字符串

Potion,和其他编程语言一样,支持类似于“Hello,world”的字符串,我们需要把它们作为字符串来进行高亮。为了对字符串进行高亮显示,我们需要使用syntax region命令。把下面的命令添加到你的Potion语法文件里:


     syntax region potionString start=/\v"/ skip=/\v\\./ end=/\v"/
     highlight link potionString String

关闭再打开factorial.fn文件,你会开到文件末尾的字符串被高亮显示了!

最后一行代码的作用你应该很清楚了。如果你不明白的话,回头阅读以下前两章的内容。

第一行用区域来添加语法块。区域包含一个开始和一个结束,分别用来标识区域的开始和结束位置。Potion的字符串用引号开始,下一个引号表示字符串的结束。

其中的“skip”参数可以帮助我们跳过字符串中间的转移符,这样就可以处理类似于"She sai:\"Vimscript is tricky,but useful!""。

如果不用skip参数的话,那么Vim匹配的文本就会在中间的"的位置就停止了,这并不是我们所期望的。

简而言之,skip的作用就是告诉Vim“一旦开始批评这个区域的文本,我希望你跳过任何匹配是行skip的文本,即使它在正常情况下被当作区域的结尾”。

花几分钟的时间来考虑一下这个问题。对于"foo \"bar"这样的字符串会发生什么事情呢?这个现象正常么?那个现象会一直是正常的表现么?关上这本书,花几分钟的时间好好考虑一下!

练习

  • 给单引号的字符串添加上语法高亮。
  • 阅读:help syn-region。
  • 阅读上面的内容会比这章花的时间长很多的。去喝杯饮料,这是你该得的。