码迷,mamicode.com
首页 > 系统相关 > 详细

ctags --- 每天一个 Linux 命令

时间:2014-09-19 15:48:25      阅读:354      评论:0      收藏:0      [点我收藏+]

标签:http   io   os   使用   java   ar   for   文件   2014   

简介

??ctags(Generate tag files for source code)是 vim下方便代码阅读的工具。尽管 ctags 也可以支持其它编辑器,但是它正式支持的只有 vim。并且 vim 中已经默认安装了Ctags,它可以帮助程序员很容易地浏览源代码。 ctags 最先是用来生成C代码的 tags 文件,后来扩展成可以生成各类语言的 tags, 有些语言也有专有的 tags 生成工具(比如 java 的 jtags, python 的 ptags).

用途

??标签检索,特别适用于大型项目的源代码。

安装

$ sudo apt-get install ctags

??说明:以上针对 Ubuntu/Debian 系统,其他的系统按照以下步骤:
?????(1) 官网下载源码
?????(2) 解压缩后执行命令

$ ./configure    
$ make   
$ make install

ctags配置

??使用sudo vim /etc/vim/vimrc 编辑vim的配置文档,在其中加入如下命令:
????(1) set tags=/home/zhouyl/linux-3.4.7/tags; “后面的路径是使用ctags -R 后生成的tags文件所在目录,如果需要配置多个tags,只需如下再添加即可
????(2) set tags=/home/zhouyl/rap/libpcap-1.3.0/tags;
????(3) set autochdir

使用

??在源码目录下执行 ctags -R *

root@thinkLinux:linux-2.6.32.63# ctags -R *
root@thinkLinux:linux-2.6.32.63# ls
arch     Documentation  init    MAINTAINERS  REPORTING-BUGS  tags
block    drivers        ipc     Makefile     samples         tools
COPYING  firmware       Kbuild  mm           scripts         usr
CREDITS  fs             kernel  net          security        virt
crypto   include        lib     README       sound

??可以发现,目录下生成了一个 tags (标签)文件,即目录索引
??“-R” 表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*” 表示所有文件。这条命令会在当前目录下产生一个 “tags” 文件,当用户在当前目录中运行 vi/vim 时,会自动载入此 tags 文件。举个例子:键入 vim 后出现
bubuko.com,布布扣
??在 vim 文件切换底行模式,输入 : cstag 关键字
??Tags文件中包括这些对象的列表:用 #define 定义的宏枚举型变量的值函数的定义、原型和声明名字空间(namespace)类型定义(typedefs)变量(包括定义和声明)类(class)、结构(struct)、枚举类型(enum)和联合(union)类、结构和联合中成员变量或函数 vim 用这个 “tags” 文件来定位上面这些做了标记的对象。
??(1) ctrl + } :连续查找关键字 要先将光标移动到关键字处
??(2) ctrl + T : 返回上一次查找关键字
??(3) 查找时出现多页关键字处理:两次 ESC 进入选择界面
bubuko.com,布布扣

root@thinkLinux:linux-2.6.32.63# vim -t task_struct

进入指定函数 task_struct,如下:
bubuko.com,布布扣
不常用命令
??(1) $ vi –t tag (请把 tag 替换为您欲查找的变量或函数名)
??(2) :ts (ts 助记字:tagslist, “:” 开头的命令为 vi/vim 中命令行模式命令)
??(3) :tp (tp 助记字:tagspreview) — 此命令不常用,可以不用记
??(4) :tn (tn 助记字:tagsnext) — 此命令不常用,可以不用记

注意

??在 vi/vim 命令行模式 “:ts”命令就能列出一个列表供用户选择。
??“:tp”为上一个tag标记文件,
??“:tn”为下一个tag标记文件。
??当然,若当前tags文件中用户所查找的变量或函数名只有一个,“:tp,:tn”命令不可用。

总结

??文章讲的不是很细,更多内容需要动手体验。希望大家善于利用 shell 命令,它所带来的高效会出乎你的意料。每天一个 Linux 命令,不见不散。

ctags --- 每天一个 Linux 命令

标签:http   io   os   使用   java   ar   for   文件   2014   

原文地址:http://my.oschina.net/finefine/blog/316060

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