apt-get install exuberant-ctags cscope global
vim cscope taglist 使用
一 . 安装
apt-get install exuberant-ctags cscope global
cppcomplete 和 taglist 要到www.vim.org的扩展列表中下载
taglist 的下载地址:
http://www.vim.org/scripts/script.php?script_id=273
cppcomplete 的下载地址:
http://www.vim.org/scripts/script.php?script_id=527
然后在 建立目录
代码:
$HOME/.vim/plugin
将下载的cppcomplete.vim 和 taglist.vim拷贝到$HOME/.vim/plugin中。
安装了global后,最新4.8.6 以上版本有带vim的扩展,将它也拷贝到 $HOME/.vim/plugin
debian sid 版本global安装后扩展文件在
代码:
/usr/share/doc/global/examples/gtags.vim.gz
需要拷贝到$HOME/.vim/plugin后解压,解压方法:
代码:
gzip -d gtags.vim.gz
二 . 配置~/.vimrc
if has("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
elseif $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
set csverb
set cscopetag
"set cscopequickfix=s-,g-,d-,t-,e-,f-,i-
endif
三 . 载入与使用
cscope -R //载入数据库
Ctl+D //退出
Ctl+T //文件中退出
find 选项 字符串
0 或 s: 查找 C 符号
1 或 g: 查找定义
2 或 d: 查找本函数调用的函数
3 或 c: 查找调用指定函数的函数
4 或 t: 查找字符串
6 或 e: 查找 egrep 模式
7 或 f: 查找文件
8 或 i: 查找包含指定文件的文件
四 . 和ctags配合使用:
载入ctags: ctags -R *
4.将光标移到kmalloc 单词上,
4.1 按"CTRL-/ s",将你带入所有引用函数kmalloc的菜单,在当前窗口打开文件
4.2 按“CTRL-]”,将你带入所有实现函数kmalloc的菜单,在当前窗口打开文件
4.3 按“CTRL-Space s”,将你带入所有引用kmalloc的菜单,水平打开新窗口
4.4 按“CTRL-Space CTRL-Space s”,将你带入所有引用kmalloc的菜单,垂直打开新窗口
4.5 下列是各键的含义
s --- symbol 符号
g --- globals 全局变量
c --- calls 调用自己的
t --- text 文本引用
e --- egrep 做egrep 搜索
f --- file 打开在光标处的文件
i --- includes 查找include所在光标处文件名的文件
d --- called 查找本函数调用的所有函数实现
4.6 按“CTRL-T”返回上一级窗口
5. 除了使用热键以外,也可以使用命令模式来查找
5.1 cs f s kmalloc
等价于CTRL-/ s
5.2 scs f s kmalloc
等价于CTRL-Space s
5.3 vert scs f s kmalloc
等价于CTRL-Space CTRL Space s
6. export CSCOPE_DB=~/cscope/cscope.out
这样就可以在任意目录下run “vi -t kmalloc”,而不会出现找不着DB的情况。
五 . vim的taglist插件使用方法
函数和变量的定义的即时浏览。这个是非常有用的功能。成千的变量,对于C/C++来说,一个类型错误都可能导致极难发现的问题,运行时出现无法预料的结果。vim里面使用taglist实现的。并且多个文件的列表都在一起,还可以按照类型折叠,以便于浏览。
taglist依赖于ctags,所以要先装ctags,否则taglist装了也没法用!
#cp doc/taglist.txt /usr/share/vim/vim70/doc/
#cp plugin/taglist.vim /usr/share/vim/vim70/plugin/
#cd /usr/share/vim/vim70/doc/
(注:vim70是我自己的vim版本号,每个人可能不同,自己更改一下)
然后打开sudo vim,shift+: ,进入vim的命令行,使用
来配置帮助文档
重启vim,用“:TlistToggle”来打开和关闭taglist窗口。
可以用“:help taglist”来获得更多帮助信息
下面讲一下~/.vimrc配置文件的设置,下面是我自己的文件的设置
syntax on
" 设置文字编码自动识别
set fencs=utf-8,cp936
" 使用鼠标
set mouse=a
" 设置高亮搜索
set hlsearch
" 输入字符串就显示匹配点
set incsearch
" 输入的命令显示出来,看的清楚些。
set showcmd
" Tlist的内部变量。函数列表。
let Tlist_Use_Right_Window=1
let Tlist_File_Fold_Auto_Close=1
"函数和变量列表
map <F4> :TlistToggle<CR>
"全能补全
inoremap <F8> <C-x><C-o>
" 没事,鼠标画线玩的。
" noremap <F9> :call ToggleSketch()<CR>
set wildmenu
" 启动函数变量快速浏览的时间设置
set updatetime=100
然后你就可以在你vim中使用taglist,此时只需要点击F4来打开或者关闭!
经过充实我的~/.vimrc内容如下:
set hlsearch
set ai
syntax on
set number
set nocompatible
set columns=80
filetype on
set history=1000
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set showmatch
set guioptions-=T
set vb t_vb=
set ruler
set nohls
set noexpandtab
set ignorecase
set mouse=a
set cindent
set incsearch
set fencs=utf-8,cp936
set showcmd
"Tlist的内部变量。函数列表。
let Tlist_Use_Right_Window=1
let Tlist_File_Fold_Auto_Close=1
" "函数和变量列表
map <F4> :TlistToggle<CR>
" "全能补全
inoremap <F8> <C-x><C-o>
" " 没事,鼠标画线玩的。
noremap <F9> :call ToggleSketch()<CR>
set wildmenu
" " 启动函数变量快速浏览的时间设置
set updatetime=100
map <F2> :split<CR>
map <F3> :vsplit<CR>
map <F5> :q!<CR>
map <F6> :w!<CR>
map <F7> :wq!<CR>
autocmd FileType python set omnifunc=pythoncomplete#Complete
if has("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
set cscopetag
"set cscopequickfix=s-,g-,d-,t-,e-,f-,i-
endif
posted on 2012-03-13 10:26 Richard.FreeBSD 阅读(527) 评论(0) 编辑 收藏 举报