gpt4 book ai didi

syntax - vim 具有特定字符的自己的突出显示

转载 作者:行者123 更新时间:2023-12-04 20:49:02 25 4
gpt4 key购买 nike

我希望我的 vim 在我的 .c 文件中以红色突出显示 Pouet 组中的一些关键字,例如 'if('。
我想出了如何突出显示:

syn keyword Pouet if

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


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

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

问题是,此代码不适用于特殊字符,如“(”或空格或多个空格。
我的问题是:如何使像“if(”这样的句子以红色突出显示?

谢谢

最佳答案

:syn keyword仅适用于关键字字符(由 'iskeyword' 设置定义)和 (通常不包含。

您必须使用 :syn match相反,例如:

:syn match Pouet "\<if("

如果您自己定义语法,这很好。如果除了现有的 C 语法高亮之外还需要此功能,则需要分析原始语法组并添加诸如 containedin=cConditional 之类的内容。 ,也许你甚至不得不修改原来的语法定义。

另一种选择是 matchadd() ,它位于语法高亮之上:
:call matchadd('Pouet', '\<if(')

这里的问题是这些匹配是窗口本地的,不像语法高亮那样绑定(bind)到文件类型,所以当你分割窗口或在当前窗口中编辑另一个文件类型时,高亮将消失/将持续存在。这些问题可以通过 autocmds 解决,但现在变得非常复杂。

关于syntax - vim 具有特定字符的自己的突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12843448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com