1.安装Taglist,ctags,cscocpe
下载taglist插件
git clone https://github.com/vim-scripts/taglist.vim
拷贝到vim路径下
cp taglist.vim/plugin/taglist.vim /usr/share/vim/vim81/plugin/
cp taglist.vim/doc/taglist.txt /usr/share/vim/vim81/doc/
ctags、cscope
通过apt-get install 安装
2. 使用
ctrl + w + w :窗口循环移动
ctrl + w + j :向下移动窗口
ctrl + w + k :向上移动窗口
ctrl + w + h :向左移动窗口
:TlistOpen 打开taglist
ctags和cscope命令
ctags -R
cscope -Rbq
配置文件
修改.vimrc文件,自动加载cscope,打开Taglist,还配置了颜色,tab等。vim ~/.vimrc
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" cscope 自动加载cscope.out文件
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set number
set nocompatible
set backspace=indent,eol,start
set ruler
set showcmd
set wildmenu
set fo=cqrt
set laststatus=2
"set textwidth=78
set ww=<,>,h,l
set autoindent
" set no error bells
set noeb visualbell
"set expandtab
"set tabstop=4
"set shiftwidth=4
"set expandtab
let mapleader = ","
syn on
filetype on
filetype plugin on
filetype indent on
syntax on
if has("cscope")
"set csprg=/usr/bin/cscope
"set csto=0
"set cst
"set csverb
"set cspc=3
"add any database in current dir
if filereadable("cscope.out")
cs add cscope.out
"else search cscope.out elsewhere
else
let cscope_file=findfile("cscope.out",".;")
let cscope_pre=matchstr(cscope_file,".*/")
if !empty(cscope_file) && filereadable(cscope_file)
set nocsverb
exe "cs add" cscope_file cscope_pre
set csverb
endif
endif
endif
"set term=screen-256color
":colorscheme elflord
" taglist
let Tlist_Auto_Open = 1
let Tlist_Show_One_File=1 "只显示当前文件的tags
let Tlist_WinWidth=40 "设置taglist宽度
let Tlist_Exit_OnlyWindow=1 "tagList窗口是最后一个窗口,则退出Vim
"let Tlist_Use_Right_Window=1 "在Vim窗口右侧显示taglist窗口
set noerrorbells visualbell t_vb=
autocmd GUIEnter * set visualbell t_vb=
set updatetime=100
hi ModeMsg ctermfg=RED
syntax on
"高亮显示匹配的括号
set showmatch
"在搜索的时候忽略大小写
set ignorecase
"高亮被搜索的句子
set hlsearch
"在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)
set incsearch
set mouse=n
"set fdm=indent
set fileencodings=gbk
3.cscope使用
手动加载cscope.out库
:cs add /home/test/myWork/cscope.out
cs常用命令
:cs f s ---- 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
:cs f g ---- 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
:cs f d ---- 查找本函数调用的函数
:cs f c ---- 查找调用本函数的函数
:cs f t ---- 查找指定的字符串
:cs f e ---- 查找egrep模式,相当于egrep功能,但查找速度快多了
:cs f f ---- 查找并打开文件,类似vim的find功能
:cs f i ---- 查找包含本文件的文
cscope的常用选项:
-R: 在生成索引文件时,搜索子目录树中的代码
-b: 只生成索引文件,不进入cscope的界面
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
-k: 在生成索引文件时,不搜索/usr/include目录
-i: 如果保存文件列表的文件名不是cscope.files时,需要加此选项告诉cscope到哪儿去找源文件列表。可以使用”-“,表示由标准输入获得文件列表。
-Idir: 在-I选项指出的目录中查找头文件
-u: 扫描所有文件,重新生成交叉索引文件
-C: 在搜索时忽略大小写
-Ppath: 在以相对路径表示的文件前加上的path,这样,你不用切换到你数据库文件所在的目录也可以使用它了。
要在vim中使用cscope的功能,需要在编译vim时选择”+cscope”。vim的cscope接口先会调用cscope的命令行接口