VIM语法:条件函数着色
发布时间:2020-12-15 22:34:47 所属栏目:安全 来源:网络整理
导读:我正在自定义标准的“c. vim”语法文件,以便调整我的C代码的可视化. 我想区分“被调用函数”的颜色与“声明函数”之一. 例: int declared_function(){ int m; m = called_function(); return (m)} 我深入阅读了VIM文档以及数百万个论坛和谷歌搜索结果,但我
我正在自定义标准的“c.
vim”语法文件,以便调整我的C代码的可视化.
我想区分“被调用函数”的颜色与“声明函数”之一. 例: int declared_function() { int m; m = called_function(); return (m) } 我深入阅读了VIM文档以及数百万个论坛和谷歌搜索结果,但我尝试过的所有解决方案都无效. 要恢复,我这样做了: 我以递归方式定义了一个区域,以便考虑大括号内的所有代码: syn region Body start="{" end="}" contains=Body 然后我通过VIM模式定义了一般函数语法: syn match cFunction "&;hw*&;(s|n)*("me=e-1 contains=cType,cDelimiter,cDefine 我这样做是因为我认为我可以在.vimrc文件中的“if else”条件中将两者合并……但是经过一整天的测试失败后,我需要有人的帮助,他可以告诉我是否可能以及如何去做吧. 谢谢大家. 解决方法
你很近.首先,您不需要递归定义,但包含其中的所有其他顶级C语法元素,以及您为被调用函数定义的特殊组:
:syn region Body start="{" end="}" contains=TOP,cFunctionUse 实际上,从头开始,默认的$VIMRUNTIME / syntax / c.vim已经定义了一个cBlock语法组. 然后,定义cBlock组中包含的不同语法组. :syn match cFunctionUse "&;hw*&;(s|n)*("me=e-1 contained containedin=cBlock contains=cType,cDefine 最后,为它链接或定义一个不同的高亮组,以便它实际上看起来不同: :hi link cFunctionUse Special 您可以将它们放入?/ .vim / after / syntax / c.vim中,以便它们自动添加到默认的C语法中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |