首先,我将展示我遇到的具体问题,但我认为问题可以概括.
我正在使用一种具有明确括号语法的语言(如Lisp),但是只有左侧paren保留的关键字.例:
(key key)
前者是保留字,但后者是对名为“key”的变量的引用
不幸的是,我发现突出显示左边的人很烦人,所以我最终使用了
syn keyword classification key
代替
syn keyword classification (key
但前者对变量的触发也是如此.
解决方法
在这种情况下单独使用syn关键字是行不通的,因为您希望突出显示更加了解周围的语法. syn区域,syn匹配和syn关键字的组合效果很好.
hi link lispfuncs Function hi link lispfunc Identifier hi link sExpr Statement syn keyword lispfuncs key foo bar contained containedin=lispfunc syn match lispfunc "(\@<=\w\+" contained containedin=sExpr contains=lispfuncs syn region sExpr matchgroup=Special start="(" end=")" contains=sExpr,lispfuncs
以上只会使用功能突出显示组突出显示键,foo和bar,前提是它们也与lispfunc匹配.
如果除了key,foo和bar之外还有其他单词(将使用Identifier高亮组突出显示它们.这允许您区分标准函数名称和用户创建的名称.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。