• 学习工具篇 还在为寻找合适的源码工具烦恼吗?


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

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

    然后去阅读和学习.这里就有一个问题了,你使用什么样子的工具阅读呢?  使用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面前无力~

     

     
  • 相关阅读:
    kettle结合MySQL生成保留最近6个月月度报告_20161009
    reduce用法
    【npm下载依赖包失败】gyp ERR! stack Error: EACCES: permission denied, mkdir问题解决方案
    【前端算法3】插入排序
    【前端算法2】快速排序
    【前端算法1】二分查找
    diy 滚动条 样式 ---- 核心代码
    [数据结构] 栈
    [数据结构] 列表
    day02 Python 运算符
  • 原文地址:https://www.cnblogs.com/respawn/p/2573662.html
Copyright © 2020-2023  润新知