我正在自定义标准的“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 "\<\h\w*\>\(\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 "\<\h\w*\>\(\s\|\n\)*("me=e-1 contained containedin=cBlock contains=cType,cDefine
最后,为它链接或定义一个不同的高亮组,以便它实际上看起来不同:
:hi link cFunctionUse Special
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。