http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html

http://blog.csdn.net/dengxiayehu/article/details/6330200 


根据上面的链接安装好vimrc之后,需要解决cscope和ctags指定特定目录下的cscope.out时的路径和使用快捷键查找时路径不匹配的问题。

首先是加载特定目录下cscope.out文件

这一步可以通过修改~/.vimrc文件来实现。

假设我的项目源文件路径是/home/nginx/nginx-1.2.0/src

我的~/.vimrc修改如下:

let PROJECT_PATH="/home/nginx/nginx-1.2.0/src"
" add any database in $PROJECT_PATH directory
"    if filereadable(PROJECT_PATH."cscope.out")
        let tmp_var=$VIMRUNTIME
        let $VIMRUNTIME=PROJECT_PATH
        cs add $VIMRUNTIME/cscope.out
        let $VIMRUNTIME=tmp_var
    " else add database pointed to by environment
    if $CSCOPE_DB != ""
        cs add $CSCOPE_DB
    endif
      set csverb
      
      
      "---------------------
      "下面是指定ctags加载tags文件的路径
      "设置tags  
        let tmp_var=$VIMRUNTIME
        let $VIMRUNTIME=PROJECT_PATH
        set tags=$VIMRUNTIME/tags
        let $VIMRUNTIME=tmp_var

通过上面的设置就可以加载指定目录下的cscope.out和tags文件了。但是还有一个问题就是,在使用cscope -Rbq *创建cscope.out以及使用ctags -R创建tags文件时,默认生成的cscope.files中的文件路径是相对路径,因此,该问题的解决方法就是将cscope.files中罗列的路径名改成绝对路径即可。方法很简单,使用sed进行替换即可,下面给出我使用生成cscope.out和tags文件的脚本。

#!/bin/sh
prj_path=/home/nginx/nginx-1.2.0/src
find . -name "*.h" -o -name "*.c"-o -name "*.cc" > cscope.files
sed -i 's:^.:/home/nginx/nginx-1.2.0/src:g' cscope.files
cscope -bkq -i cscope.files
ctags -R -L cscope.files