标签归档:ctags

ctags常用参数

下载:http://vim.sourceforge.net/scripts/script.php?script_id=1520
http://hi.baidu.com/daoyuanlee/blog/item/d2b6d31962409378dbb4bd27.html/cmtid/842a5089480683bd0e244429
下载:http://vim.sourceforge.net/scripts/script.php?script_id=1520
1.把下载的 omnicppcomplete.zip 解压到 ~/.vim 中
2.建立 tags:

    
    root@ROK:/home/rok# cd /usr/local/share/
    root@ROK:/usr/local/share# mkdir tags
    root@ROK:/usr/local/share# cd tags/
    root@ROK:/usr/local/share/tags# ctags -R --c++-kinds=+p --fields=+iaS --extra=+q /usr/include/c++/4.1.2/

3.在 .vimrc 中添加:

    
    set nocp
    filetype plugin on
    filetype indent on
    set tags+=/usr/local/share/tags/tags
    au BufWritePost *.c,*.cpp,*.cc,*.h !ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .

每个参数解释如下:
-R:ctags循环生成子目录的tags
–c++-kinds=+px :ctags记录c++文件中的函数声明和各种外部和前向声明
–fields=+iaS :ctags要求描述的信息,其中i表示如果有继承,则标识出父类;a表示如果元素是类成员的话,要标明其调用权限(即是public还是private);S表示如果是函数,则标识函数的signature。

–extra=+q:强制要求ctags做如下操作—如果某个语法元素是类的一个成员,ctags默认会给其记录一行,可以要求ctags对同一个语法元素再记一行,这样可以保证在VIM中多个同名函数可以通过路径不同来区分。