红联Linux门户
Linux帮助

Ubuntu 14.04下,cscope搜索结果显示为空

发布时间:2016-10-25 09:28:27来源:linux网站作者:laviolette
Ubuntu 14.04上配好了vim/Taglist/Cscope/WinManager/MiniBufferExplorer。
在Linux内核代码最上层目录,生成了cscope.out,使用链接中的配置修改了~/<user>/.vimrc,但有个问题一直没解决:
在根目录下打开文件,使用(cs find c func_name),可以直接跳到第一个搜索结果对应的文件和位置;
 
如果不是在根目录下打开文件,同样的命令,所有搜索结果都显示为空,”No lines in buffer"。
 
最后发现:是.vimrc中加载cscope.out的设置有问题:
if filereadable("cscope.out") " 若当前目录下存在cscope数据库,添加该数据库到vim  
cs add cscope.out  
elseif $CSCOPE_DB != """ 否则只要环境变量CSCOPE_DB不为空,则添加其指定的数据库到vim  
cs add $CSCOPE_DB  
endif  
 
原因:cs add命令不全,导致在与cscope.out不同目录下打开文件时,cscope.out不能被加载。
cs add命令格式是:cs find file_with_path path
原来脚本中缺少path,并且CSCOPE_DB没在脚本中设置。
 
解决方法:脚本中改为:
if filereadable("cscope.out") "若当前目录下存在cscope数据库,添加该数据库到vim  
cs add cscope.out  
else "否则,查找cscope.out数据库,并添加到vim  
let cscope_file=findfile("cscope.out", ".;")  
let cscope_pre=matchstr(cscope_file, ".*/")  
if !empty(cscope_file) && filereadable(cscope_file)  
exe "cs add" cscope_file cscope_pre  
endif  
endif
 
本文永久更新地址:http://www.linuxdiyf.com/linux/25366.html