Cha*_*ton 4 vim syntax-highlighting vim-syntax-highlighting
首先,我将展示我遇到的具体问题,但我认为问题可以概括.
我正在使用一种具有明确括号语法的语言(如Lisp),但是只有左侧paren保留的关键字.例:
(key key)
Run Code Online (Sandbox Code Playgroud)
前者是保留字,但后者是对名为"key"的变量的引用
不幸的是,我发现突出显示左边的人很烦人,所以我最终使用了
syn keyword classification key
Run Code Online (Sandbox Code Playgroud)
代替
syn keyword classification (key
Run Code Online (Sandbox Code Playgroud)
但前者对变量的触发也是如此.
我会采取行动解决我的问题,但我更感兴趣的是一种通用方法来突出显示给定匹配的一个子集.
使用syn keyword
单独的,因为你希望你的高亮更加意识到周围语法的这种情况不工作的权利.的组合syn region
,syn match
和syn keyword
效果很好.
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
Run Code Online (Sandbox Code Playgroud)
以上只会使用功能突出显示组突出显示键,foo和bar,前提是它们也与lispFunc匹配.
如果在a之后有除key,foo和bar之外的任何单词(
,它们将使用Identifier高亮组突出显示.这允许您区分标准函数名称和用户创建的函数名称.
在(
和)
将使用特殊的高亮组高亮显示,以及任何内部()
过去的第一个字使用Statement高亮组高亮显示.
归档时间: |
|
查看次数: |
2355 次 |
最近记录: |