ctags+taglist+cscope的安装以及常用快捷键

ctags+taglist+cscope的安装以及常用快捷键


1、cscope

1) 安装

可以在http://cscope.sourceforge.net/下载源码包,然后解压,编译安装。

./configure

make

make install


2)帮助

  • vim实用技术:一、二、三, IBM developerWork上的文章,初学者可以一看。

3)脚本

#!/bin/sh  
find  . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files  
cscope  -bkq -i cscope.files  
ctags  -R // 使taglist只显示当前文件tag,其它文件的tag都被折叠起来。   

-R : 在生成索引文件时,搜索子目录树中的代码
-b : 只生成索引文件,不进入cscope的界面
-k : 在生成索引文件时,不搜索 / usr / include目录
-q : 生成cscope . in . out和cscope . po . out文件,加快cscope的索引速度

将这个脚本保存到/usr/local/bin/cscopes.sh,以后就可以直接是使用这个命令生成索引拉!
taglist 另外再装上 从cscope,就 可以连着 ctags+taglist+ Cscope也一起用.


2、ctags 常用快捷键


{ 转到上一个空行
} 转到下一个空行
gd 转到当前光标所指的局部变量的定义
* 转到当前光标所指的单词下一次出现的地方
# 转到当前光标所指的单词上一次出现的地方

ctrl+] 转到函数定义的地方

ctrl+t 回退到函数调用的地方


3、taglist常用快捷键


    <CR>          跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样  
      
    o             在一个新打开的窗口中显示光标下tag  
      
    <Space>       显示光标下tag的原型定义  
      
    u             更新taglist窗口中的tag  
      
    s             更改排序方式,在按名字排序和按出现顺序排序间切换  
      
    x             taglist窗口放大和缩小,方便查看较长的tag  
      
    +             打开一个折叠,同zoctags常用快捷键ctags常用快捷键  
      
    -             将tag折叠起来,同zc  
      
    *             打开所有的折叠,同zR  
      
    =             将所有tag折叠起来,同zM  
      
    [[            跳到前一个文件  
      
    ]]            跳到后一个文件  
      
    q             关闭taglist窗口  

4、cscope常用快捷键


    先按 ctrl+/ 然后  
    c: 查找该函数被调用的位置  
    d: 查找该函数调用了哪些函数  
    e: 查找指定的正规表达式 f: 查找指定的文件  
    g: 查找指定标识符的定义位置  
    i: 查找该文件在哪些地方被包含  
    s: 查找指定标识符的使用位置  
    t: 查找指定的文本字符串  

需要上面的快捷键的话,还需要修改/etc/vimrc

    "if has("cscope") && filereadable("/usr/bin/cscope")  
    " set csprg=/usr/bin/cscope  
    " set csto=0  
    " set cst  
    " set nocsverb  
    " " add any database in current directory  
    " if filereadable("cscope.out")  
    " cs add cscope.out  
    " " else add database pointed to by environment  
    " elseif $CSCOPE_DB != ""  
    " cs add $CSCOPE_DB  
    " endif  
    " set csverb  
    "endif  
    nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR>  
    nmap <C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR>  
    nmap <C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR>  
    nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR>  
    nmap <C-@>e :cs find e <C-R>=expand("<cword>")<CR><CR>  
    nmap <C-@>f :cs find f <C-R>=expand("<cfile>")<CR><CR>  
    nmap <C-@>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>  
    nmap <C-@>d :cs find d <C-R>=expand("<cword>")<CR><CR>  
    let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的  
    let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim  
    let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值