vim+ctags+Taglist+cscope安装与使用

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的命令行接口

上一篇:【Linux】vim文本全选、复制、删除


下一篇:debian修改crontab默认编辑器为vim