加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

语法 – vim拥有特定字符的高亮显示

发布时间:2020-12-15 20:56:58 所属栏目:安全 来源:网络整理
导读:我希望我的 vim用红色突出显示Pouet组中的一些关键字,例如我的.c文件中的’if(‘). 我想出了如何突出: syn keyword Pouet if (这是我的?/ .vim / syntax / c.vim) 与 highlight Pouet term=NONE cterm=NONE Ctermfg=160 ctermbg=NONE gui=NONE (这是我的.vi
我希望我的 vim用红色突出显示Pouet组中的一些关键字,例如我的.c文件中的’if(‘).
我想出了如何突出:

syn keyword Pouet if

(这是我的?/ .vim / syntax / c.vim)

highlight Pouet term=NONE cterm=NONE Ctermfg=160 ctermbg=NONE gui=NONE

(这是我的.vimrc的一部分)

问题是,此代码不适用于特殊字符,如'(‘或空格或许多空格.
我的问题是:如何制作像’if(‘以红色突出显示?

谢谢

解决方法

:syn关键字仅适用于关键字字符(由’iskeyword’设置定义),并且(通常不包含).

你必须使用:syn match,例如:

:syn match Pouet "&;if("

如果您自己定义语法,这很好.如果除了现有的C语法高亮显示之外还需要此功能,则需要分析原始语法组并添加containsin = cConditional之类的内容,甚至可能需要修改原始语法定义.

另一种方法是matchadd(),它在语法高亮之上:

:call matchadd('Pouet','&;if(')

这里的问题是这些匹配是窗口本地的,没有绑定到文件类型,如语法高亮,所以当你在当前窗口中拆分窗口或编辑另一个文件类型时,突出显示将会消失/将持续存在.这些问题可以解决autocmds,但现在它变得非常复杂.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读