使用cscope 收到这个问题困扰,网上搜索也没有可行的,”E429: 文件 “/.c” 不存在”
出现该问题的原因是当我们使用cscope -Rbq
生成cscope.out
文件时,使用的是相对路径。解决的思路也很简单,生成时使用绝对路径即可
但大多数都是find 一个 cscope.file 文件,然后cscope -Rbq -i cscope.file
太费劲了,
推荐使用
add 时添加路径cs add cscope.out /home/root/study/linux-2.6.39.1/
进入vim 使用:cs show
,查看是否添加
# pid 数据库名 prepend path
0 24962 /home/root/study/linux-2.6.39.1/cscope.out /home/root/study/linux-2.6.39.1/
请按 ENTER 或其它命令继续
后面的就是指定的地址,相对路径是没有这个路径的
最好写到vimrc中,如下:
if has("cscope")
set csprg=/usr/bin/cscope
"指定:cstag的搜索顺序。0表示先搜索cscope数据库,若不匹配,再搜索tag文件,1
"则相反
set csto=0
":tag/Ctrl-]/vim -t将使用:cstag,而不是默认的:tag
set cst
"+(将结果追加到quickfix窗口)、-(清空上一次的结果)、0(不使用quickfix。没有指定也相当于标志为0)))
set cscopequickfix=s-,c-,d-,i-,t-,e- " 使用QuickFix窗口来显示cscope查找结果
set nocsverb "增加cscope数据库时,将不会打印成功或失败信息
set cspc=3 "指定在查找结果中显示多少级文件路径,默认值0表示显示全路径,1表示只显示文件名"
if filereadable("cscope.out")
cs add $PWD/cscope.out $PWD
"cs add cscope.out
else" 子目录打开,向上查找
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
set nocsverb
endif
主要是cs add $PWD/cscope.out $PWD
这句,之后使用就没有问题了
还需要注意的是,vim会走默认的/etc/vimrc
配置,这个里面也有cscope的配置,如果有权限可以直接注掉,如果没有权限(公用服务器),可以将alias vim="vim -u ~/.vimrc"
写入.bashrc 中,不走/etc/vimrc
配置