我如何添加一个";::&引用;运算符到我的VIM语法突出显示文件?
我使用的是一种嵌入Scala内部的语言,它有一个我如何添加一个";::&引用;运算符到我的VIM语法突出显示文件?,vim,syntax-highlighting,Vim,Syntax Highlighting,我使用的是一种嵌入Scala内部的语言,它有一个:操作符。我想修改scala.vim语法文件来识别这个新操作符 这就是我尝试过的(第一行工作正常,但我不知道如何向其中添加:操作符): syn-match-COperator“[&| ~>一个现有的scalaOperator:\{2,\}”正在使:的所有序列匹配(如果有两个或更多系列的:),覆盖我自己的syn-match-COperator语句 将::匹配为协同器的解决方案是,只需将与:系列匹配的scalaOperator重命名为协同器: syn
:
操作符。我想修改scala.vim语法文件来识别这个新操作符
这就是我尝试过的(第一行工作正常,但我不知道如何向其中添加:
操作符):
syn-match-COperator“[&| ~>一个现有的scalaOperator:\{2,\}”
正在使:
的所有序列匹配(如果有两个或更多系列的:
),覆盖我自己的syn-match-COperator
语句
将::
匹配为协同器的解决方案是,只需将与:
系列匹配的scalaOperator重命名为协同器:
syn match COperator ":\{2,\}"
摘要:检查覆盖您自己的匹配规则的现有匹配规则。看起来第一行模式将按原样匹配:
。它不限制字符数,因此:
将通过外部[]中的单个:
匹配
字符类。那么,当您已经高亮显示其中的每个:
作为运算符时,为什么要显式匹配:
,正如@MichaelBerkowski所指出的那样?嗯,“:::”不改变颜色。“:”是否,“:=”是否,但不:::::::::::::::::::“(syn匹配scalaOperator):”?“((syn匹配scalaOperator):{2,\}”这不是一种类型)do?(如果我把它注释掉,我会得到“::”工作,但我对正则表达式不够熟悉,无法精确指出“:”,或者Scala不知道“:”何时出现)。“:\{2,\}”
意味着“匹配所有系列的:
字符,如果2个或更多”。它将匹配:
,::
,::
,::
,…@Chris您应该添加您所做的作为问题答案的内容,并将其排除在外。
syn match COperator ":\{2,\}"