ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-11-24 18:03:56  阅读:184  来源: 互联网

标签:set vim cs ctags cscope out taglist


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

标签:set,vim,cs,ctags,cscope,out,taglist
来源: https://blog.csdn.net/qq_28440017/article/details/121521141

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有