Emacs + etags + cscope 阅读代码


用Emacs+etags+cscope可以让你的Emacs拥有比Source Insight强大的代码阅读功能。

etags: 这个是Emacs内置的功能,etags主要的功能是寻找一个变量或者函数的定义。用法如下:

1,生成TAGS索引文件:

etags `find . -name "*.[chS]"`

或 etags `find . -name "*.h" -o "*.cpp"

2,打开Emacs,读入TAGS

M-x visit-tags-table

3,

M-. :跳至相应的函数定义处;
M-* :返回刚才的函数名处;
C-u M-. :查找下一个tags

cscope:

首先到Cscope 的主页上去下载最新的源代码包,编译安装。要在 Emacs 里面 使用,首先必须把 xcscope.el 拷贝到 load-path 里面包含的目录里面。并在~/.emacs里面加上(require 'xcscope)就可以了,或者,如果你希望在打开 c 或者 c++ 文件的时候才加载 xcsope ,可以写:

(add-hook 'c-mode-common-hook
	  '(lambda ()
	    (require 'xcscope)))

如果源代码全部处于同一个目录下面,现在就可以使用了。否则,如果源代码有 多层目录,或者其他地方还有附加的源代码,则需要 cscope-indexer 脚本。把 那个脚本拷贝到系统 PATH 里面去(如/usr/bin/)。如果所有的源代码以及子目 录都是在同一个目录下面的,只要执行C-c s I(cscope-index-files)就可以 生成 Cscope 的数据库,接下来就可以使用了。

默认是的快捷键都是绑定到C-c s的前缀上面,如果嫌麻烦的话可以自己更改 快捷键绑定。这是默认的用于查找的键绑定:

C-c s s         Find symbol.
C-c s d         Find global definition.
C-c s g         Find global definition (alternate binding).
C-c s G         Find global definition without prompting.
C-c s c         Find functions calling a function.
C-c s C         Find called functions (list functions called
                from a function).
C-c s t         Find text string.
C-c s e         Find egrep pattern.
C-c s f         Find a file.
C-c s i         Find files #including a file.

下面是在搜索到的结果之间切换用的快捷键:

C-c s b         Display *cscope* buffer.
C-c s B         Auto display *cscope* buffer toggle.
C-c s n         Next symbol.
C-c s N         Next file.
C-c s p         Previous symbol.
C-c s P         Previous file.
C-c s o 跳转到定义处 C-c s u Pop mark.
优质内容筛选与推荐>>
1、一篇真正教会你开发移动端页面的文章(一)
2、从典型用户到场景到任务到代码
3、数组
4、设计模式入门,装饰着模式,c++代码实现
5、微信和钉钉电脑客户端多开


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号