打造阅读Linux源代码利器

在Linux里阅读/编写代码一般用vi

但是碰到较大的项目时阅读源代码还是比较费力,一直用find  和 grep命令。

其实,我们自己可以打造一个阅读源代码的vim,这样大大提高工作效率。

阅读源码利器组合:Vi + Ctags + taglist

以下为最终实现的效果图:

 

安装Ctags

Ctags可以到http://ctags.sourceforge.net下载。目前我下载的是ctags-5.8.tar.gz

tar  -xvzf ctags-5.8.tar.gz

cd  ctags-5.8

./configure

make

make  install

然后可到源码目录,用以下命令生成名位tags的索引文件:

ctags  -R

这样以后,在该目录下可以这样使用vi

Ctrl + ]    //查找光标下的标签,比如说函数或 结构体

Ctrl + t    //返回跳转到标签文件前的上一个地方

这样是不是很方便呢。

关于ctags更详细的用法,可以ctags –help 或者 man ctags

安装taglist插件

我下载的zip包名称为:taglist_45.zip

把它copy到 ~/.vim/下面,如果没有~/.vim目录,可以自己新建一个:

mkdir  -p ~/.vim/plugin

cd  ~/.vim

mkdir  after

mkdir  colors

mkdir  doc

mkdir  ftplugin

mkdir  syntax

然后:

unzip  taglist_45.zip

这会在你的~/.vim/plugin和~/.vim/doc目录中各放入一个文件:

plugin/taglist.vim – taglist插件

doc/taglist.txt    - taglist帮助文件

这样文档和插件都安装好了。

Taglist提供了相当多的功能,我的taglist.vim中这样配置:

""""""""""""""""""""""""""""""

let Tlist_Show_One_File = 1            "不同时显示多个文件的tag,只显示当前文件的

let Tlist_Exit_OnlyWindow = 1          "如果taglist窗口是最后一个窗口,则退出vim

let Tlist_Use_Right_Window = 1         "在右侧窗口中显示taglist窗口

阅读源码

配置好之后,随意打开一个c源码文件。

输入以下命令就可以调出taglist

TlistOpen

输入以下命令可以关闭taglist

TlistClose

光标从 vi 和 taglist之间相互切换

Ctrl + ww (注意是两个w)

在taglist窗口中,可以使用下面的快捷键:

<CR>          跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样

o             在一个新打开的窗口中显示光标下tag

<Space>       显示光标下tag的原型定义

u             更新taglist窗口中的tag

s             更改排序方式,在按名字排序和按出现顺序排序间切换

x             taglist窗口放大和缩小,方便查看较长的tag

+             打开一个折叠,同zo

-             将tag折叠起来,同zc

*             打开所有的折叠,同zR

=             将所有tag折叠起来,同zM

[[            跳到前一个文件

]]            跳到后一个文件

q             关闭taglist窗口

<F1>          显示帮助

打造阅读Linux源代码利器的更多相关文章

  1. 非常好!!!Linux源代码阅读——内核引导【转】

    Linux源代码阅读——内核引导 转自:http://home.ustc.edu.cn/~boj/courses/linux_kernel/1_boot.html 目录 Linux 引导过程综述 BI ...

  2. 非常好!!!Linux源代码阅读——环境准备【转】

    Linux源代码阅读——环境准备 转自:http://home.ustc.edu.cn/~boj/courses/linux_kernel/0_prepare.html 目录 Linux 系统环境准备 ...

  3. 非常好!!!Linux源代码阅读——中断【转】

    Linux源代码阅读——中断 转自:http://home.ustc.edu.cn/~boj/courses/linux_kernel/2_int.html 目录 为什么要有中断 中断的作用 中断的处 ...

  4. 阅读 Linux 内核源码

    阅读Linux Kernel Source Code 假如你在Linux系统下面阅读Linux内核源代码,那么需要准备一些工具. ①Linux的内核源码 内核源码的下载地址:Index of /pub ...

  5. Linux 源代码在线(http://lxr.linux.no/linux/)。

    LXR 是一个通用的源代码索引器和交叉引用器 它提供了一个基于 web 的可浏览任意定义以及任意标识的用法. 它支持很多种语言. LXR 曾经被作为 “Linux 交叉引用器” 但是已经被证明它可以用 ...

  6. 阅读linux内核代码的工具-- Source Insight

    http://blog.csdn.net/luckyaslan/article/details/7869235 Step 1:安装Source Insight并启动程序 可以进入图1界面,在工具条上有 ...

  7. linux 源代码目录结构

    Linux源代码目录树结构 (2008-04-21 09:14) 分类: Linux/Unix Linux用来支持各种体系结构的源代码包含大约4500个C语言程序,存放在270个左右的子目录下,总共大 ...

  8. Linux装机利器Cobbler安装配置

     Linux装机利器Cobbler安装配置 2011-05-27 15:31:05 分类: LINUX 一.安装环境 centos 5.4 关掉iptables 关掉 selinux selinux ...

  9. 如何高效的阅读hadoop源代码?

    个人谈谈阅读hadoop源代码的经验. 首先,不得不说,hadoop发展到现在这个阶段,代码已经变得非常庞大臃肿,如果你直接阅读最新版本的源代码,难度比较大,需要足够的耐心和时间,所以,如果你觉得认真 ...

随机推荐

  1. 【1】python核心编程 第三章

    1.继续( \ ) 有两种例外情况一个语句不使用反斜线也可以跨行.在使用闭合操作符时,单一语句可以跨多行,例如:在含有小括号.中括号.花括号时可以多行书写.另外就是三引号包括下的字符串也可以跨行书写 ...

  2. Window运行命令大全

    1. gpedit.msc-----组策略    2. sndrec32-------录音机   3. Nslookup-------IP地址侦测器   4. explorer-------打开资源管 ...

  3. 配置文件入门 - WebConfig.config常用配置节点介绍

    一.配置文件入门 .Net提供了一种保存项目配置信息的办法,就是利用配置文件,配置文件的后缀一般是.config.在WinForm程序中配置文件一般是App.config.在Asp.net中一般默认是 ...

  4. Asp.net web服务处理程序(第六篇)

    四.Web服务处理程序 对于Web服务来说,标准的方式是使用SOAP协议,在SOAP中,请求和回应的数据通过XML格式进行描述.在Asp.net 4.0下,对于Web服务来说,还可以选择支持Ajax访 ...

  5. 杀死MySQL的连接

    命令  kill 执行线程号 C# 执行杀死指定的连接 1  强制Kill掉 internal protected void KillConnection(MySqlConnection c) { i ...

  6. ##解决 ViewPager 调用 notifyDataSetChanged()无刷新:原理、解决办法##

    一.原理 转自:http://www.cnblogs.com/maoyu417/p/3740209.html 转载 http://www.67tgb.com/?p=624 最近项目结束,搞了一次代码分 ...

  7. CentOS 6.3安装Nginx 搭建文件服务器

    转自:http://www.linuxidc.com/Linux/2012-09/70596.htm 1.配置CentOS 6.2 第三方yum源(CentOS默认的标准源里没有nginx软件包): ...

  8. Topological Sorting

    Topological sorting/ ordering is a linear ordering of its vertices such that for every directed edge ...

  9. Eight(South Central USA 1998)(八数码) 分类: bfs 2015-07-05 22:34 1人阅读 评论(0) 收藏

    The 15-puzzle has been around for over 100 years; even if you don't know it by that name, you've see ...

  10. JNI_最简单的Java调用C/C++代码

    JNI_最简单的Java调用C/C++代码 JNI.是Java Native Interface的简称,中文是"Java本地调用".通过这种技术能够做到下面两点: Java程序中的 ...