`

vim + ctags + cscope

阅读更多

一般安装 ctags、cscope 这2个插件是:
$ sudo apt-get install ctags cscope

我习惯这样创建索引文件:
$ ctags -R --fields=+lS && cscope -Rbq
把这个命令写成shell脚本放到/usr/bin下。

1、用vim + ctags
a  首先我们必需给要阅读的原始码建一个或多个tags文件,
在shell下利用ctags命令给单个文件建立tags如下:
 $ ctags  filename.c

要给同一个目录下的所有文件建立tags如下:
 $ ctags -R

这时在tags文件所在的目录下打开源文件阅读,vim就会自动调用tags文件。
如果tags文件不在当前目录下,能在命令模式下用下面的命令设置tag文件
:set tag=tag_file_path

但是一般对我来说tags都在当前目录下,所以我习惯于在~/.vimrc中加入:
:set tags=$PWD/tags

b  要在vim下跳到一个函数的定义处能在命令模式下用下面的命令:
     :tag fuction_name
这个命令将把你带到fuction_name函数的定义处。
这个功能十分有用,以前一直没有注意。

c  另外,ctrl + ]命令会把当前光标下的单词作为tag的名字,并直接跳转。
用ctrl + t命令能回到前一个tag,你能在ctrl + t前面加一个数字表示往回跳
的层数。

d  使用Ctrl + g能显示当前正在编辑的文件名,及所在的行号。
如果源文件的排版比较乱的话,能通过命令gg=G来格式化整个源文件。


2、cscope
在使用cscope之前需要先生成一个数据库
a  生成索引文件:
 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,这样,你不用转换到你数据库
    文件所在的目录也能使用他了。

如果你的源码中只含有.c,.h文件,你能直接使用 
$ cscope -Rbq

在使用cscope之前需要先生成一个数据库,你可以使用cscope-indexer(如果多个
目录你可以使用-R选项),它会在当前目前下生成一个cscope.files的文件,这个文
件包含了cscope需要生成索引的全部文件,因为cscope-indexer不会自动查到.cpp,.S
后缀的文件,因此最后使用find来生成cscope.files文件:
$ find ./ -name “*.c” -or -name “*.h” -or -name “*.cpp” > cscope.files

上面的命令会把当前目录下所有.c,.h,.cpp文件列出并写入cscope.files文件中。
接着使用cscope -Rbq来生成索引引。
$ cscope -Rbq

一般使用方法:
$ find ./ -name "*.c" -or -name "*.h" -or -name "*.cpp" -or -name "*.S" | cscope -Rbq

b  接着你就能使用vim来打开一个文件来浏览编辑代码了。
想查看cscope的使用方法最好的办法是在vim中输入:
:cs help

这里还是稍稍说明一下:
s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
d: 查找本函数调用的函数
c: 查找调用本函数的函数
t: 查找指定的字符串
e: 查找egrep模式,相当于egrep功能,但查找速度快多了
f: 查找并打开文件,类似vim的find功能
i: 查找包含本文件的文

例如平常最常用的查询那个函数调用了函数func():
:cs f c func

:cs find c func

分享到:
评论

相关推荐

    vim+ctags+cscope

    linux下面vim+ctags+cscope的使用方法,功能非常强大 linux下面vim+ctags+cscope的使用方法,功能非常强大

    vim + ctags + cscope + nerdtree + taglist + vundle

    "vim + ctags + cscope + nerdtree + taglist + vundle"的组合,是Vim高效开发环境的经典搭建方案,尤其适合进行大型代码库的管理和调试。 首先,`Vim` 是一个高度可配置的文本编辑器,它支持命令行模式,提供丰富...

    vim+ctags+cscope一键安装(使用)

    vim+ctags+cscope一键安装(使用)

    vim+ctags+cscope 配置文件

    自己的vim配置文件, 内含: 1. _vimrc 2. plugin: TagList, SuperTab, OmniCppComplete, Code_Complete 3. tags for glibc, C++(stl,stream), Unix98 system, glib-2.0 4. ftplugin for Pro*C/C++

    用vim+ctags+taglist+cscope打造文本模式下的Kscope

    Vim+ctags+taglist+cscope 打造文本模式下的 Kscope Kscope 作为一个功能强大的文本模式下的代码浏览器,具有代码 navigation、代码搜索、代码分析等功能。但是,使用 Kscope 需要图形化界面,然而,在 Linux 系统...

    vim+ctags+cscope配置文件V2.0.6

    自己的vim配置文件 1. .vimrc 2. plugins: TagList, SuperTab, OmniCppComplete, Code_Complete DoxygenToolkit, proc 3. c89, GNU libc, C++(stl,stream), IEEE Std 1003.1-2008, glib-2.0 的tags文件 4. ftplugin ...

    vim+ctags使用

    vim+ctags 使用 Vim 是一个功能强大且灵活的文本编辑器,而 ctags 是一个源代码阅读工具,两者结合使用可以大大提高代码编写的效率。以下是 vim+ctags 的使用方法和应用。 ctags 应用 ctags 是一个源代码阅读...

    vim+ctags+cscope配置文件V1.0.0

    自己的vim配置文件 1. .vimrc 2. plugins: TagList, SuperTab, OmniCppComplete, Code_Complete DoxygenToolkit, proc 3. glibc, C++(stl,stream), Unix98 system, glib-2.0 的tags文件 4. ftplugin for Pro*C/C++ 5...

    vim+ctag+cscope快速生成ctags cscope等索引文件shell脚本

    代码阅读,vim插件使用,根据自己指定的目录生成ctags cscope等索引文件,shell脚本,仅供参考。

    ctags,cscope,taglist.vim,cscope_maps.vim

    这里提到的"ctags", "cscope", "taglist.vim" 和 "cscope_maps.vim" 是针对Windows环境下Vim编辑器的几个强大插件,它们极大地提升了程序员的工作效率。下面将详细阐述这些工具的功能和使用方法。 1. **ctags**:...

    windows cscop+ctags vim各种插件

    windows 环境的ctags和cscope还有DoxygenToolkit.vim minibufexpl.vim Tabular.vim taglist.vim visualmark.vim 插件工具

    linux源代码阅读工具vim+ctag+cscope

    Vim、ctags和cscope是Linux开发人员常用的代码阅读工具,它们能够帮助开发者更高效地理解和导航源代码。以下是对这些工具的详细介绍: 1. **Vim**:Vim是一款高度可配置的文本编辑器,它具有强大的文本操作能力和...

    基础电子中的代码查看小妙招--vim ctags cscope的简单用法

     可能你也知道去掉/etc/vim/vimrc文件中的“"syntax on “前面的双引号就能开启语法高亮,可是开了这个选项后,打开vim会有一些莫名的提示,这些都不要经我们升级一下vim就OK了升级方法可以是:  1、在终端下...

    linux-tools:vim73 cscope ctags .vimrc

    "linux-tools:vim73 cscope ctags .vimrc" 提到的是一组工具和配置,旨在提升使用Vim编辑器的体验。下面我们将详细探讨这些工具及其在编程工作中的应用。 **Vim73**: Vim73指的是Vim编辑器的第7.3版本。Vim(Vi ...

    嵌入式Linux开发教程 下册

    vim+ctags+cscope是Linux环境下传统的组合,vim是一个强大的文本编辑器,ctags和cscope是帮助定位源码中符号和结构的工具;LXR是一个跨平台的源码浏览工具,适用于在线浏览Linux内核源码。 接下来,教材详细介绍了...

    vim配置文件及插件

    安装完vim+ctags+cscope以后将这个压缩包解压到家目录下,即可,带有常用插件taglist等,以及vimrc中一些很实用的配置

    一键安装 ctags和cscope的方法

    "一键安装 ctags和cscope的方法"这个主题是关于如何利用Vim的插件系统,高效地配置Vim环境,使其功能接近于Source Insight这样的专业代码浏览和分析工具。以下将详细介绍ctags和cscope这两个工具,以及如何通过特定...

Global site tag (gtag.js) - Google Analytics