cscope ”E429: 文件 “/.c” 不存在”

使用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配置

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值