| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1434 人关注过本帖
标题:Vim配置中遇到了正则表达式的问题
取消只看楼主 加入收藏
wfoo
Rank: 3Rank: 3
等 级:论坛游侠
威 望:7
帖 子:120
专家分:134
注 册:2011-8-6
结帖率:66.67%
收藏
已结贴  问题点数:40 回复次数:4 
Vim配置中遇到了正则表达式的问题
请教一个问题,vim中配置脚本的时候那些正则表达式是怎么回事?
我基本上看不懂:
syn match    cFloat        display contained "\d\+f"
"floating point number, with dot, optional exponent
syn match    cFloat        display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
"floating point number, starting with a dot, optional exponent
syn match    cFloat        display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
"floating point number, without dot, with exponent
syn match    cFloat        display contained "\d\+e[-+]\=\d\+[fl]\=\>"
if !exists("c_no_c99")
  "hexadecimal floating point number, optional leading digits, with dot, with exponent
  syn match    cFloat        display contained "0x\x*\.\x\+p[-+]\=\d\+[fl]\=\>"
  "hexadecimal floating point number, with leading digits, optional dot, with exponent
  syn match    cFloat        display contained "0x\x\+\.\=p[-+]\=\d\+[fl]\=\>"
endif
上面的代码摘自 vim的默认的c语言语法配置脚本,

"\d\+f"       是不是对应perl中的     <===>   m#\d+f#i;
"\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="   <===>   m#\d+\.\d*(e[-+]?\d+)?[fl]?#i;
"\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"    <===>   m#\.\d+(e[-+]?\d+)?[fl]?#i;

vim脚本中 为什么 '量词+' 前面要叫 '\', 而那个 量词'*'又不要。
那些个 '\=' 到底是什么意思,是不是相当于 perl中的 '量词?' ?
我想配置一个适合自己用的vim感觉太难了啊.


[ 本帖最后由 wfoo 于 2011-9-21 19:22 编辑 ]
搜索更多相关主题的帖子: starting display without number 表达式 
2011-09-21 19:18
wfoo
Rank: 3Rank: 3
等 级:论坛游侠
威 望:7
帖 子:120
专家分:134
注 册:2011-8-6
收藏
得分:0 
我想配置个VIM给自己用,
让 所有的类型名 宏名 函数名 显示不同的颜色。但是 vim默认的类型只能是 int float等这样的类型,不能用特殊的颜色显示自己定义的类型名 函数名。
如果要配置这样的脚本,应该怎么做?
2011-09-22 19:06
wfoo
Rank: 3Rank: 3
等 级:论坛游侠
威 望:7
帖 子:120
专家分:134
注 册:2011-8-6
收藏
得分:0 
首先,谢谢您了!
以前学c语言时用的dev c++,后来学其他脚本语言就不支持高亮了,所以才下了个vim.其他的都没用过了。但在配置脚本时遇到很多困难。对于函数名高亮我想过一种方法,对于.c .h文件首先指定一个脚本打开,这个脚本先扫描一遍文件,包括include后的文件,得到所有的函数名 宏名等,然后生成一个vim脚本,在用gvim利用这个脚本打开文件。不过也只能高亮原来就有的函数名。
2011-09-23 19:34
wfoo
Rank: 3Rank: 3
等 级:论坛游侠
威 望:7
帖 子:120
专家分:134
注 册:2011-8-6
收藏
得分:0 
用vim主要是读,但配置脚本是为了写。读代码的话,能跳到指定行 显示行号就好了,高不高亮没关系。高亮全局函数名 全局变量为了防止打错字,以及引起注意,毕竟一个程序会分成很多个.c .h文件。看了下ctag介绍,它也是预先扫描所有的源文件,然后把得到的函数名什么的全记录到一个文件里,以后要找那些东西就很方便了。确实功能很强大,比用Perl脚本扫描源文件然后生成vim脚本要简单得多,并且用脚本扫描其他语言代码时,还要重写脚本来分析不同语言的语法。
2011-09-24 13:00
wfoo
Rank: 3Rank: 3
等 级:论坛游侠
威 望:7
帖 子:120
专家分:134
注 册:2011-8-6
收藏
得分:0 
谢谢了。
2011-09-24 17:17
快速回复:Vim配置中遇到了正则表达式的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029320 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved