| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> vim 设置变量、结构体成员及函数名不同颜色显示(c语言) -> 正文阅读 |
|
[开发工具]vim 设置变量、结构体成员及函数名不同颜色显示(c语言) |
本人的vim界面示例(xshell的终端):因当时在看tlv320aic3x的codec驱动源码,便以此文件为例进行截图,勉强实现以下几个功能:(靠vim正则表达式进行匹配高亮,非语法解析,不是很准确)目前未考虑c++的文件 1.变量类型与变量名区别开不同颜色显示(变量类型不同颜色高亮且加粗显示,目前只做到了带struct关键字的变量类型) 但强制类型转换里的"*" 与变量类型颜色保持一致,这与变量定义或声明时的变量类型有点不同; 变量类型名与变量名区别开匹配是挺难的(毕竟只是表达式,没有逻辑判断,总是存在缺陷); 目前匹配变量类型名主要靠 "struct" 或 "enum" 或 "union"? 开始,接着0-n个空格符?"\s",再接着字母或下划线开头以及字母或下划线或数字结尾的单词,然后是由空格符?"\s"加?"\*"组成的,0-n个空格符?"\s"加上0-n个 "\*"再加上0-n个空格符?"\s"的 0-n次组合,最后是0-n个的回车换行符来匹配,有个较大的缺陷,就是不能匹配已由typedef定义的变量类型的类型名;匹配变量名则是?0-n个 "\*" 和空格符 "\s" ?开始,接着0-n个空格符?"\s",再接着字母或下划线开头以及字母或下划线或数字结尾的单词,然后0-n个空格符?"\s",最后至少有
中的一个字符来匹配。 2."->"的方式以及"."的方式区别开不同颜色显示其成员名成员变量主要是 前面是"->" 或 "." 后面接着字母或下划线开头以及字母或下划线或数字结尾的单词。 3.函数名不同颜色显示函数主要靠字母或下划线开头以及字母或下划线或数字结尾的单词加上左括号来匹配,只是注意左括号前面可能有0-n个空白字符"\s"。 4.宏定义不同颜色显示?宏区分了宏函数与一般的宏变量; 由大写字母开始,字母或下划线或数字结尾的单词,接着0-n个空格符?"\s",再接着
中的一个字符或者这两个字符 "(\->)" ,最后是0-n个空格符?"\s" 以及0-n个回车换行符?"\n" 来匹配; 由于仅仅是vim正则表达式进行匹配(仅仅以大写字母开始,便匹配其为宏),因此当宏定义时,未使用大写字母开头,便会出现以下情况,将其误匹配为变量名: 匹配及高亮规则(c.vim)全部内容如下: 其中,为了让c默认的类型关键字cType与自定义的cStruct颜色保持一致,特将默认的类型关键字cType的颜色重新定义为与自定义的cStruct颜色相同,且需要将原定义的cStructure注释掉;
默认的cDefine与自定义的cMacro也是特将其颜色保持一致; cterm 为终端字体样式,目前已知可以设置两种值(none-正常,bold-加粗); ctermfg 为终端的前景色, vim开启256色后,可以使用1-255指定其颜色,也可#eeeeee的方式指定颜色,颜色值(256色)可参考?https://blog.csdn.net/ZGY_121/article/details/78634568?vim正则表达式可参考?https://blog.csdn.net/iteye_9166/article/details/82584426
c.vim文件实际截图: 文件位于/usr/share/vim/vim80/syntax/c.vim,其中vim80为vim版本目录,将以上内容加入该文件保存即可。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/14 15:00:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |