脚踏实地
全部博文(230)
分类: LINUX
2009-09-13 15:51:35
先将ctags更新到最新版本:
现在我们到 下载最新版本的taglist plugin,目前版本是4.3。
在Fedora10和Ubuntu9.10里没找到这两个文件夹,而是在/usr/share/vim/vim72里:
plugin/taglist.vim – taglist插件 doc/taglist.txt - taglist帮助文件 注: windows用户需要把这个插件解压在你的$vim/vimfiles或$HOME/vimfiles目录。
- plugin/taglist.vim – taglist插件
- doc/taglist.txt - taglist帮助文件
使用下面的命令生成帮助标签(下面的操作在vim中进行):
Taglist提供了相当多的功能,可以在/etc/vimrc中这样配置:
这样配置后,当你输入”:Tlist “时,显示如下窗口:
仔细阅读了cscope的手册后发现,原来cscope在产生索引文件时,只搜索类型为 C, lex和yacc的文件(后缀名为.c, .h, .l, .y),C++的文件根本没有生成索引。不过按照手册上的说明,cscope支持c++和Java语言的文件。
于是按照cscope手册上提供的方法,先产生一个文件列表,然后让cscope为这个列表中的每个文件都生成索引。
为了方便使用,编写了下面的脚本来更新cscope和ctags的索引文件:
将这个脚本保存到/usr/local/bin/cscopes.sh,以后就可以直接是使用这个命令生成索引拉!
taglist 另外再装上 从cscope,就 可以连着 ctags+taglist+ Cscope也一起用.
ctags 常用快捷键 :
{ 转到上一个空行
} 转到下一个空行
gd 转到当前光标所指的局部变量的定义
* 转到当前光标所指的单词下一次出现的地方
# 转到当前光标所指的单词上一次出现的地方
ctrl+] 转到函数定义的地方
ctrl+t 回退到函数调用的地方
taglist常用快捷键:
跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样 - o 在一个新打开的窗口中显示光标下tag
显示光标下tag的原型定义 - u 更新taglist窗口中的tag
- s 更改排序方式,在按名字排序和按出现顺序排序间切换
- x taglist窗口放大和缩小,方便查看较长的tag
- + 打开一个折叠,同zoctags常用快捷键ctags常用快捷键
- - 将tag折叠起来,同zc
- * 打开所有的折叠,同zR
- = 将所有tag折叠起来,同zM
- [[ 跳到前一个文件
- ]] 跳到后一个文件
- q 关闭taglist窗口
跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样 o 在一个新打开的窗口中显示光标下tag cscope常用快捷键:显示光标下tag的原型定义 u 更新taglist窗口中的tag s 更改排序方式,在按名字排序和按出现顺序排序间切换 x taglist窗口放大和缩小,方便查看较长的tag + 打开一个折叠,同zoctags常用快捷键ctags常用快捷键 - 将tag折叠起来,同zc * 打开所有的折叠,同zR = 将所有tag折叠起来,同zM [[ 跳到前一个文件 ]] 跳到后一个文件 q 关闭taglist窗口 先按 ctrl+\ 然后 c: 查找该函数被调用的位置 d: 查找该函数调用了哪些函数 e: 查找指定的正规表达式 f: 查找指定的文件 g: 查找指定标识符的定义位置 i: 查找该文件在哪些地方被包含 s: 查找指定标识符的使用位置 t: 查找指定的文本字符串 需要上面的快捷键的话,还需要修改/etc/vimrc
- 先按 ctrl+\ 然后
- c: 查找该函数被调用的位置
- d: 查找该函数调用了哪些函数
- e: 查找指定的正规表达式 f: 查找指定的文件
- g: 查找指定标识符的定义位置
- i: 查找该文件在哪些地方被包含
- s: 查找指定标识符的使用位置
- t: 查找指定的文本字符串
- "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
s :cs find s =expand(" " )- nmap
g :cs find g =expand(" " )- nmap
c :cs find c =expand(" " )- nmap
t :cs find t =expand(" " )- nmap
e :cs find e =expand(" " )- nmap
f :cs find f =expand(" " )- nmap
i :cs find i ^ =expand(" " )$ - nmap
d :cs find d =expand(" " )- let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的
- let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim
- let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口