4

我想cscope.out在我的项目的子目录中自动加载我的,所以我在我的中添加了这个脚本,.vimrc如下所示:

set cscopequickfix=s-,c-,d-,i-,t-,e-

if has("cscope")
    set csprg=/usr/bin/cscope
    set csto=1
    set cst
    set csverb
    set cspc=3
    "add any database in current dir
    if filereadable("cscope.out")
        cs add cscope.out
    "else search cscope.out elsewhere
    else
       let cscope_file=findfile("cscope.out", ".;")
        "echo cscope_file
        if !empty(cscope_file) && filereadable(cscope_file)
            exe "cs add" cscope_file
        endif      
     endif
endif

一开始它有效。但是每次我尝试做的时候:

:cs find c [tag]  

搜索结果将出现在 QuickFix 列表中,但包含结果的文件无法打开。

任何意见,将不胜感激。

4

1 回答 1

4

如果添加一个cscope.out确保它设置正确的路径前缀。否则它将显示结果但无法加载文件。

例子:

   cs add ../cscope.out ../

所以你应该把你的脚本改成

 ...
 else
   let cscope_file=findfile("cscope.out", ".;")
   let cscope_pre=matchstr(cscope_file, ".*/")
   "echo cscope_file
   if !empty(cscope_file) && filereadable(cscope_file)
      exe "cs add" cscope_file cscope_pre
   endif
 ...
于 2012-09-03T07:43:18.727 回答