vim ctags cscope


1.taglist
注意:taglist依赖于ctags,所以要先装ctags,否则taglist装了也没法用!
(1)将taglist_45.zip解压得到的两个文件夹:doc和plugin 放到 ~/.vim文件夹里面,如果主目录下没有这个隐藏的文件夹,就建一个。
(2)
plugin/taglist.vim – taglist插件
doc/taglist.txt - taglist帮助文件
(3)常用快捷键
ctrl+ww    在列表和源文件中切换
ctrl + ]     查看函数定义
ctrl + o     返回上一级文件。
gf             查看头文件
gd        转到当前光标所指的局部变量的定义处。
*        转到当前光标所在单词的下一次出现的地方。
#        转到当前光标所在的单词的上一次出现的地方。
<CR>          跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样   
o             在一个新打开的窗口中显示光标下tag   
<Space>       显示光标下tag的原型定义   
u             更新taglist窗口中的tag   
s             更改排序方式,在按名字排序和按出现顺序排序间切换  
x             taglist窗口放大和缩小,方便查看较长的tag    
+             打开一个折叠,同zoctags常用快捷键ctags常用快捷键   
-             将tag折叠起来,同zc   
*             打开所有的折叠,同zR   
=             将所有tag折叠起来,同zM   
[[            跳到前一个文件  
]]            跳到后一个文件 
q             关闭taglist窗口  

taglist 窗口ENTER 

2.ctags
(1)安装ctags : sudo apt-get install ctags
(2)使用
ctags -R      对当前目录下的文件递归产生tags文件。
ctags file.c
(3)在.vimrc文件中添加配置
:TlistToggle 或 :Tlist     显示函数列表
在.vimrc文件中加上键盘映射
map <F8> :Tlist<CR>
这样我就可以使用快捷键F8直接进入tlist模式了。这里注意<F8>和 : 之间有空格的。
在.vimrc下加入一下两行
set tags=tags;
set autochdir
这样使用tags时可以首先在当前目录下查找tags文件,如果没有则转到父目录查找。依次向上。

查看帮助文件
:help helptags
:help taglist.txt

3.cscope
(1)仔细阅读了cscope的手册后发现,原来cscope在产生索引文件时,只搜索类型为 C, lex和yacc的文件(后缀名为.c, .h, .l, .y),
C++的文件根本没有生成索引。不过按照手册上的说明,cscope支持c++和Java语言的文件。
于是按照cscope手册上提供的方法,先产生一个文件列表,然后让cscope为这个列表中的每个文件都生成索引。
为了方便使用,编写了下面的脚本来更新cscope和ctags的索引文件:

 #!/bin/sh  
find  . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files  
cscope  -bkq -i cscope.files  
ctags  -R     
 
 -R : 在生成索引文件时,搜索子目录树中的代码
 -b : 只生成索引文件,不进入cscope的界面
 -k : 在生成索引文件时,不搜索 / usr / include目录
 -q : 生成cscope . in . out和cscope . po . out文件,加快cscope的索引速度
将这个脚本保存到/usr/local/bin/cscopes.sh,以后就可以在源代码目录下使用sudo bash cscope.sh命令直接生成索引拉!
(2)cscope常用快捷键:
先按 ctrl+\ 然后  
c: 查找该函数被调用的位置  
d: 查找该函数调用了哪些函数  
e: 查找指定的正规表达式 f: 查找指定的文件  
g: 查找指定标识符的定义位置  
i: 查找该文件在哪些地方被包含  
s: 查找指定标识符的使用位置  
t: 查找指定的文本字符串  

原文地址:https://www.cnblogs.com/chonghui1001/p/2220703.html