From: http://blog.csdn.net/skywalkzf/article/details/5009329

一 . 安装
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装了也没法用!

#unzip taglist.zip -d ~/.vim
#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的命令行,使用

: helptags  .

来配置帮助文档
重启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

vim cscope taglist 使用相关推荐

  1. vim无法打中文_vim+ctags+cscope+Taglist+Nerdtree打造成sourceinsight

    听说vi很强大?是的,最近笔者需要在Linux下编写一些C代码和查看一些C源码,但是默认的vi并不支持函数之间的跳转.查看函数的定义等等,所以笔者就将vi打造成了一个ide(可以勉强称得上吧).首先我 ...

  2. Vim编程之:tags,cscope,taglist

    最近VIM用得比较多,所以在学了不少.在这里对收获到的东西做一个总结. 1.编程四要素vim,ctags,cscope,taglist vim配合这3件东西之后,极为强大.与SourceInsight ...

  3. Linux 内核阅读工具vim+ctags+cscope+taglist

    今天,来介绍一下vim+ctags+cscope+taglist的内核阅读配置.当使用过之后,我相信大部分人都会舍弃之前的Eclipse(我就是活生生的一个例子).我们先来看看实现的界面是怎么样的: ...

  4. vim+cscope+ctags打造属于自己的IDE

    所谓工欲善其事,必先利其器.作为专业码农,特别是长期在Unix系统上展开工作(查看源代码.coding)的码农,没有一个极致的IDE环境,工作效率会很受影响的.当然啥时候Unix系统如果有Visual ...

  5. vim中taglist无法显示问题

    以前在fedora中使用使用taglist一直正常: 今天在ubuntu中配置了vim,但是taglist无法正常显示函数及变量列表: 查看文件目录下面也生成了tags的文件,说明ctags也安装没问 ...

  6. linux源代码阅读组合vim tags taglist

    vim+ctags+taglist 在linux下构建类似于windows sourceinsight的源码阅读环境 /***********************************/ /** ...

  7. cscope精准查看linux函数调用,Cscope的使用(领略Vim + Cscope的强大魅力)

    1.Cscope介绍 Cscope是类似于ctags一样的工具,但可以认为她是ctags的增强版,因为她比ctags能够做更多的事.在Vim中,通过cscope的查询,跳转到指定的地方就像跳转到任何标 ...

  8. vim cscope java_【转】Cscope的使用(领略Vim + Cscope的强大魅力)

    [转]Cscope的使用(领略Vim + Cscope的强大魅力) 1.Cscope介绍 Cscope是类似于ctags一样的工具,但可以认为她是ctags的增强版,因为她比ctags能够做更多的事. ...

  9. vim cscope java_在Vim(gvim)中使用cscope

    之前已经详细的介绍了在 vim中使用ctags ,这篇文章我们就来详细介绍一下如何在vim中使用cscope. 首先,我们还是了解一下什么是cscope.简单来讲,cscope主要用来协助浏览C/C+ ...

最新文章

  1. mysql非聚集索引区间查询_mysql的聚集索引和非聚集索引,回表查询,索引覆盖,最左前缀原则略解...
  2. 实验测试2SK241的g-s击穿电压
  3. LT1004CZ-2.5 参考电压源
  4. Codeforces - 466C - Number of Ways - 组合数学
  5. 萌宠历险记html5游戏在线玩,《神武2》天外魔境现世 萌宠历险记首发
  6. 湛江市计算机等级考试,2020广东省湛江市计算机等级考试注意事项
  7. 腾讯优图刷新人体姿态估计国际权威榜单,相关论文被ECCV2020收录
  8. 三分钟掌握Go mod常用与高级操作
  9. WebAssembly 为何能改变软件的分发?
  10. hdu4734 F(x)
  11. 阻止默认事件event.preventDefault();
  12. 学习小实例--滚动条
  13. 七月算法机器学习4 凸优化初步
  14. 大学四年,看过的优质书籍推荐
  15. IDEA 主题颜色设置
  16. 图书借阅系统UML建模
  17. 异步时钟域的亚稳态问题和同步器(四)
  18. 物联网设备OTA软件升级之:升级包下载过程之旅
  19. php三D立体模拟,【HTML5】3D模型--百行代码实现旋转立体魔方实例
  20. vmware虚拟机屏幕如何适应窗口全屏

热门文章

  1. [笔记]java-package
  2. 6月份美国域名总量新增近5.4万个 环比减少51%
  3. 织梦在线报名平台php,DedeCMSv5
  4. 访问模型参数,初始化模型参数,共享模型参数方法
  5. 初探Golang(3)-数据类型
  6. leetcode 1143. 最长公共子序列(dp)
  7. leetcode162. 寻找峰值(二分法)
  8. css背景图片添加url_CSS背景图片–如何向您的Div添加图片URL
  9. vim捐赠_#PayItBackwards-一位freeCodeCamp毕业生如何向事业捐赠10,000美元
  10. vj节点_创意编码—如何在JavaScript中创建VJ引擎