Chinaunix首页 | 论坛 | 博客
  • 博客访问: 251136
  • 博文数量: 51
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 575
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-22 13:49
文章分类
文章存档

2009年(1)

2008年(13)

2007年(7)

2006年(30)

我的朋友

分类: LINUX

2007-11-14 23:11:39

决定不要太懒,无事的时候还是阅读一下开源的代码,提高提高自己。看C代码,最佳首选自然是vim+ctags了。
领略了多年的linux shell的强大和好处后,就算在windows下也习惯装个cygwin去工作。这样,创建tags就很简单了。在代码根目录下,例如~/src/linux-2.6.23.1/,执行
 

ctags --c-types=+p+x -R

即可生成完美的tags,然后在vim下

:set tags=~/src/linux-2.6.23.1/tags

就可以使用这个tags了。独立于cygwin安装的gvim下则是形如:

:set tags=I:\src\linux-2.6.23.1\tags

把这些命令写入到vimrc里面就作为默认的tags路径。用即可访问相关变量、函数的定义,并用返回。如果在GUI环境,如果set mouse=a, 还可以使用g<鼠标左键>快速跳转到tags中第一个对应的代码定义,用g<鼠标右键>返回。

很多人都喜欢在多个地方创建tags,例如/usr/include、/usr/src/linux等,然后

:set tags=~/src/linux-2.6.23.1/tags,/usr/include/tags

这时要查找某个函数的定义时在指定的tags中可能会有多处定义,默认是跳到找到的第一个,如果用g,则可以输出函数定义的列表,通过输入数字选择其中的一个,如果只有一个,则直接跳转。于是可以

map g

此外,在linux下也可以通过apache+perl+lxr通过web来阅读源代码,只需要配置lxr.conf设定代码目录和tags的数据库目录,并把lxr的perl脚本相关目录扔或者alias到apache的htdocs下面,最后执行类似以下命令就可以通过浏览器访问了。就使用了lxr提供linux内核源代码在线阅读服务。

genxref /usr/src/linux-2.6.23.1/

在windows下曾经尝试用VC Express创建一个项目来读linux的源码,这个东西在读规模小点的代码还是很好用,拿来看linux-0.11或者linux-1.0等小麻雀很不错。但是像2.6.x这样的庞然大物,生成的数据库响应之慢和占用的内存之大慢的不是一般人能承受的……另外还可以用source insight创建工程来管理源代码的阅读,但是偶实在讨厌si那特别花哨复杂的界面,还是我们家vim简约强大……


阅读(1074) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~