vim ctags java源码_使用Vim+Ctags+Cscope阅读源代码

cscope的工作需要vim、ctags的配合,它们都是基于命令行的。在Ubuntu下,用户只需执

行“sudo apt-get install cscope cscope-indexer ctags vim-full”即可完成软件安装。

下面只是给出了三种工具的常用方法,更多功能可查看man手册,或者官方文档。

在Ubuntu下默认安装的vim,没有语法加亮功能。所以需要安装vim-full,并在vim 配置

文件 ~/.vimrc中添加一行 "syntax on" 这样在vim中打开的源码就有了语法高亮显示。

vim自带了很多颜色主题,可以直接选取下面一行添加到vim配置文件当中,重新打开vim即

可生效。

colorscheme elflord "我使用这个

colorscheme darkblue

colorscheme evening

colorscheme murphy

colorscheme torte

colorscheme desert

注意:在~/下没有.vimrc文件,用户必须自己建立一个这样的文件。

要想在vim里面使用ctags,必须首先在前面建立的~/.vimrc文件里面添加两行命令,命令如下:

set tags=tags;

set autochdir

注意第一个命令里的分号是必不可少的。这个命令让vim首先在当前目录里寻找tags文件,如果没有找到tags文件,或者没有找到对应的目标,就到父目录中查找,一直向上递归。因为tags文件中记录的路径总是相对于tags文件所在的路径,所以要使用第二个设置项来改变vim的当前目录。

Ctags

在源代码根目录下执行 ctags -R 命令用来为程序源代码生成标签文件,其-R选项表示递

归操作,同时为子目录也生成标签文件。vim利用生成的标签文件,可以进行相应检索、并

在不同的文件C语言元素之间来回切换。

在vim中ctags的简单使用

1) 跳转到指定的函数进入vim后,用 “:tag func_name“ 跳到函数func_name处。使用tag

命令时,可以使用TAB键进行匹配查找,继续按TAB键向下切换。

某个函数有多个定义时

:tag

跳到第一个定义处,优先跳转到当前文件

:tnext

跳到第一个

:tfirst

跳到前count个

:[count]tprevious

跳到后count个

:[count]tnext

跳到最后一个

:tlast

你也可以在所有tagname中选择:

:tselect tagname

如果想跳到包含block的标识符:“tag /block” 然后用TAB键来选择。这里'/'就是告诉vim

'block'是一个语句块标签。

2)用“CTRL + ]“快捷键,跳转到光标所在函数标识符的定义处。

3)使用“CTRL + T”退回上层。如果想在以write_开头的标识符中选择一下, :tselect /^

write_ 这里,'^'表示开头,同理,'$'表示末尾。多个同名的标识符

Cscope

运行cscope命令,出现两个面板,上方是一个查找结果的显示面板,下方是一个查找条件

指定面板。使用TAB键在两个面板间切换,也可使用上下左右方向件和翻页键在同一面板内

贴换位置。选中显示面板的某个项,回车即可进入该文件,这是调用vim打开文件,这时就

可以结合ctags使用了。当然也可以直接使用vim打开文件,结合ctags阅读源码。

使用前,必须现使用“cscope-indexer -r”命令递归生成索引信息文件。特殊情况下,还需

要用户使用find命令,主动生成索引信息文件,并指定给cscope工具。 cscope提供了如下

九种查询方式:

Find this C symbol:

#查找指定的C符号

Find this global definition:

#查找指定的全局定义

Find functions called by this function:

#查找指定函数调用的函数

Find functions calling this function:

#查找调用指定函数的函数

Find this text string:

#查找字符串

Change this text string:

#修改指定字符串

Find this egrep pattern:

#查找匹配字符

Find this file:

#查找指定文件

Find files #including this file:

#指定引用头文件进行查找

使用“CTRL +d"退出cscope!

应用实例

下面以使用cscope阅读内核源代码为例:

$ wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.6.tar.bz2

#从Linux内核官网下载内核源代码

$ tar xvfj linux-2.6.27.6.tar.bz2

#解压文件

$ cd linux-2.6.27.6

#进入源代码根目录

$ ctags -R

#递归生成标签文件

$ cscope-indexer -r

#递归生成索引信息文件

$ cscope

#使用cscope阅读源码

标签文件、索引信息文件只需要第一次或者代码发生变动时生成,以后使用直接运行

cscope即可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值