http://easwy.com/blog/ 很敬佩这位大牛!!
下载插件的官网是:搜一下想找的插件立马就会出来,官网很强大。
vim 默认安装在/usr/share/vim 里面vim73 和 vimfiles 两个文件夹,vim73中有一些.vim文件
vim配置文件为 /etc下的vimrc文件
Vim 中使用Cscope+taglist
1,Cscope 以及Ctag索引文件的建立:
为了方便使用,编写了下面的脚本来更新cscope和ctags的索引文件:
#!/bin/sh
find . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files
cscope -bkq -i cscope.files
ctags -R
这个命令会生成三个文件:cscope.out, cscope.in.out, cscope.po.out。
2,在VIM加载cscope.out文件
在VIM中使用cscope非常简单,首先调用“cscope add”命令添加一个cscope数据库,然后就可以调用“cscope find”命令进行查找了。VIM支持8种cscope的查询功能,如下:例如,我们想在代码中查找调用work()函数的函数,我们可以输入:“:cs find c work”.在源代码目录下打开vim。要使用cscope查找就必须加载cscope.out文件.
s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能ctrl+]:在函数调用的地方跳转到函数定义的地方
ctrl+t:返回上一个查找的地方
其它命令介绍:ctrl+]:在函数调用的地方跳转到函数定义的地方
ctrl+t:返回上一个查找的地方
特别注意:所生成的cscope.out和tags文件要在打开VIM所在的文件夹,否则VIM无法找到相关符号信息。
3,Cscope快捷键的使用
nmap <C-@><C-@>s :vert scs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-@><C-@>g :vert scs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-@><C-@>c :vert scs find c <C-R>=expand("<cword>")<CR><CR>
nmap <C-@><C-@>t :vert scs find t <C-R>=expand("<cword>")<CR><CR>
nmap <C-@><C-@>e :vert scs find e <C-R>=expand("<cword>")<CR><CR>
nmap <C-@><C-@>f :vert scs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <C-@><C-@>i :vert scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
nmap <C-@><C-@>d :vert scs find d <C-R>=expand("<cword>")<CR><CR>
如果使用快捷键的话,需要自己建立以个文件,将上面的几行复制到文件中 /root/.vim/plugin/cscope_maps.vim
4,taglist的安装和使用
注意:taglist依赖于ctags,所以要先装ctags,否则taglist装了也没法用!
(1)到http://vim.sourceforge.net/scripts/script.php?script_id=273
下载最新的taglist,我的版本是taglist_45.zip,解压你会发现俩个文件夹:doc和plugin.二 . 配置~/.vimrc
下面讲一下~/.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 :TlistToggle
"全能补全
inoremap
" 没事,鼠标画线玩的。
" noremap :call ToggleSketch()
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 :TlistToggle
" "全能补全
inoremap
" " 没事,鼠标画线玩的。
noremap :call ToggleSketch()
set wildmenu
" " 启动函数变量快速浏览的时间设置
set updatetime=100
map :split
map :vsplit
map :q!
map :w!
map :wq!
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
附上.vim以及.vimrc
http://tg1a198.mail.163.com/app/wp/doGetFile.jsp?sid=vEQDTWagKqfZdcHkAaggnuFESsZCbTAZ&mode=download&mid=154:1tbimh4gH0R3OUgvAwABsU
http://tg1a198.mail.163.com/app/wp/doGetFile.jsp?sid=vEQDTWagKqfZdcHkAaggnuFESsZCbTAZ&mode=download&mid=154:1tbimh4gH0R3OUgvAwAAsV
参考文章:http://blogold.chinaunix.net/u1/59481/showart_1861521.html
cscope的主页在: http://cscope.sourceforge.net/
在vim的网站上,有很多和cscope相关的插件,可以去找一下你有没有所感兴趣的。搜索结果在这里:
点这里