码迷,mamicode.com
首页 > 其他好文 > 详细

vim插件配置

时间:2014-05-14 03:58:50      阅读:329      评论:0      收藏:0      [点我收藏+]

标签:blog   class   code   c   http   get   

推荐的源码阅读工具为: vim + ctags + cscope

Linux源代码提供了制作cscope索引文件和tags文件的make命令。

一,软件安装

先安装cscope:

  1. sudo apt-get install cscope

再安装ctags:

  1. sudo apt-get install ctags

二,生成索引文件

在源代码目录下使用一下两条命令即可生成cscope索引文件和tags文件。

  1. $ make cscope
  2. $ make tags

三,一般源文件中生成索引文件

为了方便使用,编写了下面的脚本来更新cscope和ctags的索引文件:

  1. #!/bin/sh
  2. find .-name "*.h"-o -name "*.c"-o -name "*.cc"> cscope.files
  3. cscope -bkq -i cscope.files
  4. ctags -R

这个命令会生成三个文件:cscope.out, cscope.in.out, cscope.po.out。

其中cscope.out是基本的符号索引,后两个文件是使用"-q"选项生成的,可以加快cscope的索引速度。

这个脚本,首先使用find命令,查找当前目录及子目录中所有后缀名为".h", ".c"和".c"的文件,

并把查找结果重定向到文件cscope.files中。然后cscope根据cscope.files中的所有文件,生成符号索引文件。

最后一条命令使用ctags命令,生成一个tags文件,在vim中执行":help tags"命令查询它的用法。

它可以和cscope一起使用。上面所用到的命令参数,含义如下:

-R: 在生成索引文件时,搜索子目录树中的代码

-b: 只生成索引文件,不进入cscope的界面

-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度

-k: 在生成索引文件时,不搜索/usr/include目录

-i: 如果保存文件列表的文件名不是cscope.files时,需要加此选项告诉cscope到哪儿去找源文件列表。

可以使用“-”,表示由标准输入获得文件列表。

-I dir: 在-I选项指出的目录中查找头文件

-u: 扫描所有文件,重新生成交叉索引文件

-C: 在搜索时忽略大小写

-P path: 在以相对路径表示的文件前加上的path,这样,你不用切换到你数据库文件所在的目录也可以使用它了。

四,在VIM使用cscope查找

1,加载cscope.out文件

在VIM中使用cscope非常简单,首先调用“cscope add”命令添加一个cscope数据库,

然后就可以调用“cscope find”命令进行查找了。VIM支持8种cscope的查询功能,如下:

例如,我们想在代码中查找调用work()函数的函数,我们可以输入:“:cs find c work”,

回车后发现没有找到匹配的功能,可能并没有函数调用work()。我们再输入“:cs find s work”,

查找这个符号出现的位置,现在vim列出了这个符号出现的所有位置。我们还可以进行字符串查找,

它会双引号或单引号括起来的内容中查找。还可以输入一个正则表达式,这类似于egrep程序的功能。

在源代码目录下打开vim。要使用cscope查找就必须加载cscope.out文件.在vim命令行下执行:

:cs add cscope.out

在vim命令行下执行:

:cs help

cscope commands:

add : Add a new database (Usage: add file|dir pre-path )

find : Query for a pattern (Usage: find c|d|e|f|g|i|s|t name)

  1. c:Find functions calling thisfunction
  2. d:Find functions called bythisfunction
  3. e:Findthis egrep pattern
  4. f:Findthis file
  5. g:Findthis definition
  6. i:Find files #including this file
  7. s:Findthis C symbol
  8. t:Find assignments to

help : Show this message (Usage: help)

kill : Kill a connection (Usage: kill #)

reset: Reinit all connections (Usage: reset)

show : Show connections (Usage: show)

s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方

g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能

d: 查找本函数调用的函数

c: 查找调用本函数的函数

t: 查找指定的字符串

e: 查找egrep模式,相当于egrep功能,但查找速度快多了

f: 查找并打开文件,类似vim的find功能

i: 查找包含本文件的文

2,使用cscope查找dofork函数的定义:

在vim命令行下执行:

:cs f g do_fork

五,在VIM中使用tags查找符号:

在vim命令行下执行:

:tag xxx

即可找到你想找的函数或是数据结构或是函数xxx

关于tags的其它用法可以在vim中执行”:help tags”命令进行查询。

六,其它命令介绍:

ctrl+]:在函数调用的地方跳转到函数定义的地方

ctrl+t:返回上一个查找的地方

七,特别注意:

所生成的cscope.out和tags文件要在打开VIM所在的文件夹,否则VIM无法找到相关符号信息。

参考文章:

http://blog.csdn.net/amicablehj/article/details/5725981

vim插件配置,布布扣,bubuko.com

vim插件配置

标签:blog   class   code   c   http   get   

原文地址:http://www.cnblogs.com/chris-cp/p/3721972.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!