zoukankan      html  css  js  c++  java
  • 学习工具篇 还在为寻找合适的源码工具烦恼吗?

     这篇博文和前面的篇文章是衔接的,也算是一点点补充吧.

    在前文中说过关于阅读源码可以提高自己的修养~ 对于源码的阅读,无非就是选中一个自己认为适合自己的源码包,

    然后去阅读和学习.这里就有一个问题了,你使用什么样子的工具阅读呢?  使用vi? 或者是win下的记事本?

     

    虽然很多的源码都是模块化开发的,在阅读的时候选中一个小模块,然后慢慢琢磨就可以了.但是在源码阅读的过程中

    总是需要查找的功能的,一般的文本编辑器只能实现在一个文件中的指定查找,功能有限.不过,你也可以使用IDE阅读

    源码,方法很多,随自己喜欢吧.其实,我们还是有其他选择的.

     

    解决的办法是什么呢? emacs/vim会给我们答案.

    我已经不使用vim好久了,或者说更多的时间我选择使用emacs.个人感觉emacs慢慢有节奏的按键操作,可以让我体验coding

    的快乐.那种感觉是vim不能给的,因为vim使用起来有点暴力~

    取决于你的选择,我的建议是:emacs优雅,vim更注重效率.可随自己喜欢挑选一个.

     

    emacs + cscope + xcscope 是源码阅读的不错选择.配置也相当的简单.

    由于我使用的是ubuntu 12.04 所以配置工作也都是在此环境下面完成的,仅供参考.

    sudo apt-get install cscope*
    

     xcscope是cscope插件的扩展:[link:http://www.emacswiki.org/emacs/xcscope+.el]]

     

    怎么去结合emacs使用cscope阅读源码呢? 先看一下关于xcscope的一些操作说明( 当然,这些说明在emacs的菜单选项中也是有的~ )

     1 C-c s s         Find symbol.  
     2 C-c s d         Find global definition.  
     3 C-c s g         Find global definition (alternate binding).  
     4 C-c s G         Find global definition without prompting.  
     5 C-c s c         Find functions calling a function.  
     6 C-c s C         Find called functions (list functions called  
     7                 from a function).  
     8 C-c s t         Find text string.  
     9 C-c s e         Find egrep pattern.  
    10 C-c s f         Find a file.  
    11 C-c s i         Find files #including a file.  
    12   
    13 search:  
    14 C-c s b         Display *cscope* buffer.  
    15 C-c s B         Auto display *cscope* buffer toggle.  
    16 C-c s n         Next symbol.  
    17 C-c s N         Next file.  
    18 C-c s p         Previous symbol.  
    19 C-c s P         Previous file.  
    20 C-c s u         Pop mark.

    下面就就结合glib的源码说说如何使用emacs + xcscope+ cscope 组合的使用方法:

     

    1. 随便打开源码包中的一个文件: 我打开的是glib/glib/gthread.h (我的glib源码包是使用git clone的,和官网下载的源码包目录有点不一样,请自己注意~)

     

    2. 设定初始化目录,也就是cscope + xcscope插件生成tag的检测范围的限定.这可以根据你自己的需求去做,我的选择是把源码包设置为初始化目录. ( C-c s a)

     

    3. 为文件生成检索tag. 一般我会选择执行两条命令(C-c s L and  C-c s i)

     

     有的时候,如果源码包很大个的话,执行的过程可能需要一些时间,不过还是很快的.

    4. 执行完上面的步骤之后,就可以随意在源码包中查找关键词了.(C-c s s + key )

     如上图所示,会帮你查找到所有关键词出现的位置.这时候就是很据你自己的需求进行跳转.我想,对于辨别查找自己需要的源码这种能力,还是有的,不会在一大堆tag面前无力~

     

     
  • 相关阅读:
    台州 OJ 3847 Mowing the Lawn 线性DP 单调队列
    洛谷 OJ P1417 烹调方案 01背包
    快速幂取模
    台州 OJ 2649 More is better 并查集
    UVa 1640
    UVa 11971
    UVa 10900
    UVa 11346
    UVa 10288
    UVa 1639
  • 原文地址:https://www.cnblogs.com/respawn/p/2573662.html
Copyright © 2011-2022 走看看