Iwi*_*ghT 5 syntax vim highlight keyword
我希望我的vim用红色突出显示Pouet组中的一些关键字,例如.c文件中的'if('。我想出了如何突出显示if:
syn keyword Pouet if
Run Code Online (Sandbox Code Playgroud)
(这是我的〜/ .vim / syntax / c.vim)
与
highlight Pouet term=NONE cterm=NONE Ctermfg=160 ctermbg=NONE gui=NONE
Run Code Online (Sandbox Code Playgroud)
(这是我的.vimrc的一部分)
问题是,此代码不适用于特殊字符(例如'('或一个空格或许多空格)。我的问题是:如何使类似'if('的句子以红色突出显示?
谢谢
:syn keyword仅适用于关键字字符(由'iskeyword'设置定义),并且(通常不包含。
你必须改用:syn match,例如:
:syn match Pouet "\<if("
Run Code Online (Sandbox Code Playgroud)
如果您自己定义语法,这很好。如果你除了现有的C语法高亮之外还想要这个,你需要分析原始语法组并添加诸如 之类的东西containedin=cConditional,也许你甚至必须修改原始语法定义。
另一种选择是matchadd(),它位于语法突出显示之上:
:call matchadd('Pouet', '\<if(')
Run Code Online (Sandbox Code Playgroud)
这里的问题是这些匹配是窗口本地的,不像语法突出显示那样绑定到文件类型,因此当您拆分窗口或在当前窗口中编辑另一个文件类型时,突出显示将消失/将持续。这些问题可以通过 autocmd 解决,但现在变得非常复杂。
| 归档时间: |
|
| 查看次数: |
1517 次 |
| 最近记录: |