2008年11月16日 星期日 11:07
oh,,,good.. 非常好!!!正在找呢.. -------------------------------------------------- From: <zeuux-linux-request在zeuux.org> Sent: Sunday, November 16, 2008 1:59 AM To: <zeuux-linux在zeuux.org> Subject: zeuux-linux 摘要, 卷 7, 发布 7 > 想在 zeuux-linux 邮件列表发言,请写信给: > zeuux-linux在zeuux.org > > 要订阅或者退订列表,可以访问万维网地址: > http://www.zeuux.org/mailman/listinfo/zeuux-linux > 或者可以向: > zeuux-linux-request在zeuux.org > 发送主题或者正文为'help'的邮件。 > > 您可以通过邮件地址: > zeuux-linux-owner在zeuux.org > 联系到此列表的管理员。 > > 当回信时,请给一个适当的标题,这样会比 "Re: > Contents of zeuux-linux digest..."更清楚明白。 > > > 本日主题: > > 1. 使用Vim+Ctags+Cscope阅读源代码 (Jianjun Kong) > 2. Re: [XiYouLinux] 使用Vim+Ctags+Cscope阅读源代码 (Niu Tao) > 3. Re: [XiYouLinux] 使用Vim+Ctags+Cscope阅读源代码 > (Jianjun Kong) > 4. Re: [XiYouLinux] Re: 使用Vim+Ctags+Cscope阅读源代码 > ( Américo Wang ) > 5. Re: [XiYouLinux] 使用Vim+Ctags+Cscope阅读源代码 > ( Américo Wang ) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Sat, 15 Nov 2008 15:05:07 +0800 > From: Jianjun Kong <kongjianjun在gmail.com> > Subject: [zeuux-linux] 使用Vim+Ctags+Cscope阅读源代码 > To: Xiyou-Linux-Group <xiyoulinux在googlegroups.com> > Cc: zeuux-linux在zeuux.org, 西电Linux <xidian_linux在googlegroups.com> > Message-ID: <20081115070507.GA23617在ubuntu> > Content-Type: text/plain; charset=utf-8 > > > 最近有好几个人问我使用什么阅读源代码,网上查了一下,关于Vim+Ctags+Cscope阅读源码的资料很多,但有些讲得太简略,于是自己整理了一下。 > 欢迎任何改进反馈 ;) > ------------------- > > 使用Vim+Ctags+Cscope阅读源代码 > > --孔建军(Kongove.CN) > > 2008.11.15 > > 代码阅读工具简介 > > 对于学习Linux内核的人来说,源代码的阅读尤为重要。因为所有设计思想、内部机制都是 > 以代码的形式实现,所有的资料也都是为了更好的诠释代码。那么一个好的阅读工具,能 > > 够提高阅读的效率和效果。常见的代码阅读工具有,Source Navigator、Source > Insight > 、lxr、Cscope等。 > > • "Source Navigator"是红帽子公司的,以GNU GPL发布,可从官方网站[1]下载使用。 > > • "Source Insight"目前只有Windows平台的,官方网站[2]。需要注册才能使用,或者 > 从网上下载注册机生成注册码。在Linux下通过wine模拟虽然可以方便使用,但它毕竟 > 是Windows平台的东西,并不能很自由的使用。 > • lxr(linux cross reference)[3]为程序源代码建立索引数据库,利用perl脚本CGI动态 > 生成包含源码的web页面,你可以用任何一种浏览器查阅。缺点是需要服务器支持,还 > > 有速度。 > • "Cscope"[4]为终端下的代码阅读工具,资源消耗少,对那些忠于命令行的行操作的人 > ,使用起来更加方便、灵活。这也是这篇文章推荐使用的一个重要原因。也有人把 > > Cscope和Emasc绑定阅读源码。当然工具的选取,也取决于个人习惯。 > > Vim+Ctags+Cscope > > cscope的工作需要vim、ctags的配合,它们都是基于命令行的。在Ubuntu下,用户只需执 > 行“sudo apt-get install cscope cscope-indexer ctags vim-full”即可完成软件安装。 > 下面只是给出了三种工具的常用方法,更多功能可查看man手册,或者官方文档。 > > Vim > > vim被看作是专门为程序员打造的文本编辑器,其丰富的编辑命令都是常用的简单字符,用 > > 户很容易上手。vim可对180多种语言的语法高亮,对C语言自动缩进,真则表达式字符匹配 > 查找,功能强大,并支持多个操作系统平台。关于vim的使用,这里不做讲解。vim中文文 > 档[5]。 > 在Ubuntu下默认安装的vim,没有语法加亮功能。所以需要安装vim-full,并在vim > 配置 > 文件 ~/.vimrc中添加一行 "syntax on" 这样在vim中打开的源码就有了语法高亮显示。 > > vim自带了很多颜色主题,可以直接选取下面一行添加到vim配置文件当中,重新打开vim即 > 可生效。 > > colorscheme elflord "我使用这个 > colorscheme darkblue > colorscheme evening > colorscheme murphy > colorscheme torte > colorscheme desert > > 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: > #指定引用头文件进行查找 > > 在对应某一项中输入查找条件,回车即可进行查询,并将结果显示在显示面板。 > > 应用实例 > > 下面以使用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] http://sourcenav.sourceforge.net/ > [2] http://www.sourceinsight.com/ > [3] http://lxr.linux.no/ > [4] http://cscope.sourceforge.net/ > [5] http://vcd.gro.clinux.org/ > > -- > Jianjun Kong @_@ Happy Hacking > Homepage: http://kongove.cn/ > Gtalk: kongjianjun在gmail.com > > > ------------------------------ > > Message: 2 > Date: Sat, 15 Nov 2008 15:09:27 +0800 > From: "Niu Tao" <niutao0602在gmail.com> > Subject: Re: [zeuux-linux] [XiYouLinux] > 使用Vim+Ctags+Cscope阅读源代码 > To: "Jianjun Kong" <kongjianjun在gmail.com> > Cc: zeuux-linux在zeuux.org, Xiyou-Linux-Group > <xiyoulinux在googlegroups.com>, 西电Linux > <xidian_linux在googlegroups.com> > Message-ID: > <9ce30fc10811142309q6fbabceap16a1420e3fdbeec4在mail.gmail.com> > Content-Type: text/plain; charset=UTF-8 > > 2008/11/15 Jianjun Kong <kongjianjun在gmail.com>: >> >> 最近有好几个人问我使用什么阅读源代码,网上查了一下,关于Vim+Ctags+Cscope阅读源码的资料很多,但有些讲得太简略,于是自己整理了一下。 >> 欢迎任何改进反馈 ;) >> ------------------- >> >> 使用Vim+Ctags+Cscope阅读源代码 >> >> --孔建军(Kongove.CN) >> >> 2008.11.15 >> >> 代码阅读工具简介 >> >> 对于学习Linux内核的人来说,源代码的阅读尤为重要。因为所有设计思想、内部机制都是 >> 以代码的形式实现,所有的资料也都是为了更好的诠释代码。那么一个好的阅读工具,能 >> >> 够提高阅读的效率和效果。常见的代码阅读工具有,Source Navigator、Source >> Insight >> 、lxr、Cscope等。 >> >> • "Source Navigator"是红帽子公司的,以GNU GPL发布,可从官方网站[1]下载使用。 >> >> • "Source Insight"目前只有Windows平台的,官方网站[2]。需要注册才能使用,或者 >> 从网上下载注册机生成注册码。在Linux下通过wine模拟虽然可以方便使用,但它毕竟 >> 是Windows平台的东西,并不能很自由的使用。 >> • lxr(linux cross reference)[3]为程序源代码建立索引数据库,利用perl脚本CGI动态 >> 生成包含源码的web页面,你可以用任何一种浏览器查阅。缺点是需要服务器支持,还 >> >> 有速度。 >> • "Cscope"[4]为终端下的代码阅读工具,资源消耗少,对那些忠于命令行的行操作的人 >> ,使用起来更加方便、灵活。这也是这篇文章推荐使用的一个重要原因。也有人把 >> >> Cscope和Emasc绑定阅读源码。当然工具的选取,也取决于个人习惯。 >> >> Vim+Ctags+Cscope >> >> cscope的工作需要vim、ctags的配合,它们都是基于命令行的。在Ubuntu下,用户只需执 >> 行"sudo apt-get install cscope cscope-indexer ctags vim-full"即可完成软件安装。 >> 下面只是给出了三种工具的常用方法,更多功能可查看man手册,或者官方文档。 >> >> Vim >> >> vim被看作是专门为程序员打造的文本编辑器,其丰富的编辑命令都是常用的简单字符,用 >> >> 户很容易上手。vim可对180多种语言的语法高亮,对C语言自动缩进,真则表达式字符匹配 >> 查找,功能强大,并支持多个操作系统平台。关于vim的使用,这里不做讲解。vim中文文 >> 档[5]。 >> 在Ubuntu下默认安装的vim,没有语法加亮功能。所以需要安装vim-full,并在vim >> 配置 >> 文件 ~/.vimrc中添加一行 "syntax on" 这样在vim中打开的源码就有了语法高亮显示。 >> >> vim自带了很多颜色主题,可以直接选取下面一行添加到vim配置文件当中,重新打开vim即 >> 可生效。 >> >> colorscheme elflord "我使用这个 >> colorscheme darkblue >> colorscheme evening >> colorscheme murphy >> colorscheme torte >> colorscheme desert >> >> 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: >> #指定引用头文件进行查找 >> >> 在对应某一项中输入查找条件,回车即可进行查询,并将结果显示在显示面板。 >> >> 应用实例 >> >> 下面以使用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 > ctags -R >> #递归生成标签文件 >> $ cscope-indexer -r >> #递归生成索引信息文件 >> $ cscope >> #使用cscope阅读源码 >> >> 标签文件、索引信息文件只需要第一次或者代码发生变动时生成,以后使用直接运行 >> >> cscope即可。 >> >> >> >> [1] http://sourcenav.sourceforge.net/ >> [2] http://www.sourceinsight.com/ >> [3] http://lxr.linux.no/ >> [4] http://cscope.sourceforge.net/ >> [5] http://vcd.gro.clinux.org/ >> >> -- >> Jianjun Kong @_@ Happy Hacking >> Homepage: http://kongove.cn/ >> Gtalk: kongjianjun在gmail.com >> >> --~--~---------~--~----~------------~-------~--~----~ >> 要退订此论坛请发邮件至 xiyoulinux-unsubscribe在googlegroups.com >> 更多选项: http://groups.google.com/group/xiyoulinux?hl=zh-CN >> 提问前建议您阅读:http://www.xiyoulinux.cn/blog/?p=64 >> 也请查看我们的FAQ:http://xiyoulinux.cn/wiki/index.php?title=FAQ >> -~----------~----~----~----~------~----~------~--~--- >> >> > > > > -- > ------------------ > running out of a problem is not a solution,sit and face it > > ------------------------------ > > Message: 3 > Date: Sat, 15 Nov 2008 15:18:16 +0800 > From: Jianjun Kong <kongjianjun在gmail.com> > Subject: Re: [zeuux-linux] [XiYouLinux] > 使用Vim+Ctags+Cscope阅读源代码 > To: Niu Tao <niutao0602在gmail.com> > Cc: zeuux-linux在zeuux.org, Xiyou-Linux-Group > <xiyoulinux在googlegroups.com>, 西电Linux > <xidian_linux在googlegroups.com> > Message-ID: <20081115071816.GA23777在ubuntu> > Content-Type: text/plain; charset=utf-8 > > On Sat, Nov 15, 2008 at 03:09:27PM +0800, Niu Tao wrote: >>2008/11/15 Jianjun Kong <kongjianjun在gmail.com>: >>> 使用Vim+Ctags+Cscope阅读源代码 > > .... >>> $ cd linux-2.6.27.6 >>> #进入源代码根目录 >>> $ ctags -r >>ctags -R > > Thanks. > > 已更新到:http://www.kongove.cn/web/doc/vim-ctags-cscope-source.html > >>> #递归生成标签文件 >>> $ cscope-indexer -r >>> #递归生成索引信息文件 >>> $ cscope >>> #使用cscope阅读源码 >>> >>> 标签文件、索引信息文件只需要第一次或者代码发生变动时生成,以后使用直接运行 >>> >>> cscope即可。 >>> >>> >>> >>> [1] http://sourcenav.sourceforge.net/ >>> [2] http://www.sourceinsight.com/ >>> [3] http://lxr.linux.no/ >>> [4] http://cscope.sourceforge.net/ >>> [5] http://vcd.gro.clinux.org/ > > -- > Jianjun Kong @_@ Happy Hacking > Homepage: http://kongove.cn/ > Gtalk: kongjianjun在gmail.com > > > ------------------------------ > > Message: 4 > Date: Sat, 15 Nov 2008 17:42:58 +0000 > From: " Américo Wang " <xiyou.wangcong在gmail.com> > Subject: Re: [zeuux-linux] [XiYouLinux] Re: > 使用Vim+Ctags+Cscope阅读源代码 > To: "xd linux" <xdlinux在gmail.com> > Cc: zeuux-linux在zeuux.org, Jianjun Kong <kongjianjun在gmail.com>, > Xiyou-Linux-Group <xiyoulinux在googlegroups.com>, "helight. xu" > <helight.xu在gmail.com> > Message-ID: > <2375c9f90811150942w1f817adfn6802520fbd03ec69在mail.gmail.com> > Content-Type: text/plain; charset=UTF-8 > > 2008/11/15 xd linux <xdlinux在gmail.com>: >> 偷偷地告诉你:yes ^_^ >> > > 第2遍:不要在顶部回复! > > 另外,这里是linux论坛,讨论windows的东西是偏离话题的!停止!! > > ------------------------------ > > Message: 5 > Date: Sat, 15 Nov 2008 17:59:51 +0000 > From: " Américo Wang " <xiyou.wangcong在gmail.com> > Subject: Re: [zeuux-linux] [XiYouLinux] > 使用Vim+Ctags+Cscope阅读源代码 > To: "Jianjun Kong" <kongjianjun在gmail.com> > Cc: zeuux-linux在zeuux.org, Xiyou-Linux-Group > <xiyoulinux在googlegroups.com> > Message-ID: > <2375c9f90811150959l47544910ye48020a7ea5985a5在mail.gmail.com> > Content-Type: text/plain; charset=UTF-8 > > 2008/11/15 Jianjun Kong <kongjianjun在gmail.com>: >> >> 最近有好几个人问我使用什么阅读源代码,网上查了一下,关于Vim+Ctags+Cscope阅读源码的资料很多,但有些讲得太简略,于是自己整理了一下。 >> 欢迎任何改进反馈 ;) >> ------------------- >> >> 使用Vim+Ctags+Cscope阅读源代码 >> >> --孔建军(Kongove.CN) >> >> 2008.11.15 >> >> 代码阅读工具简介 >> >> 对于学习Linux内核的人来说,源代码的阅读尤为重要。因为所有设计思想、内部机制都是 >> 以代码的形式实现,所有的资料也都是为了更好的诠释代码。那么一个好的阅读工具,能 >> >> 够提高阅读的效率和效果。常见的代码阅读工具有,Source Navigator、Source >> Insight >> 、lxr、Cscope等。 > > > 很明显你漏了Kscope,kde下很强大的工具,我个人认为比source navigator好多了。 > > > > >> >> • "Source Navigator"是红帽子公司的,以GNU GPL发布,可从官方网站[1]下载使用。 >> > > > 说实话,source navigator给我的印象很差。。。 > > >> • "Source Insight"目前只有Windows平台的,官方网站[2]。需要注册才能使用,或者 >> 从网上下载注册机生成注册码。在Linux下通过wine模拟虽然可以方便使用,但它毕竟 >> 是Windows平台的东西,并不能很自由的使用。 > > 既然如此那最好连提都别提。:-) > > >> • lxr(linux cross reference)[3]为程序源代码建立索引数据库,利用perl脚本CGI动态 >> 生成包含源码的web页面,你可以用任何一种浏览器查阅。缺点是需要服务器支持,还 >> >> 有速度。 >> • "Cscope"[4]为终端下的代码阅读工具,资源消耗少,对那些忠于命令行的行操作的人 >> ,使用起来更加方便、灵活。这也是这篇文章推荐使用的一个重要原因。也有人把 >> >> Cscope和Emasc绑定阅读源码。当然工具的选取,也取决于个人习惯。 >> > > 再一次:所有这些工具都无法对函数指针进行跟踪(你知道为什么)。而grep在任何情况下 > 都可以。所以我现在基本上只用grep了。 > > ------------------------------ > > _______________________________________________ > zeuux-linux mailing list > zeuux-linux在zeuux.org > http://www.zeuux.org/mailman/listinfo/zeuux-linux > > > 结束zeuux-linux 摘要, 卷 7, 发布 7 > ***************************************** >
Zeuux © 2024
京ICP备05028076号