公众号:Android系统攻城狮
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
优质专栏:Audio工程师进阶系列【原创干货持续更新中……】??
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
1.前言
工欲善其事,必先利其器,本节介绍一款源码查看工具,特别是代码特别庞大时,往往不知道从何下手,counsel-gtags可以帮助你极大提高工作效率。
- 1
2.安装
<1>.下载与安装
# git clone https://github.com/syohex/emacs-counsel-gtags.git # cp counsel-gtags.el ~/.emacs.d/site-lisp
- 1
- 2
<2>.配置
# emacs ~/.emacs ;;counse-gtags (add-hook 'c-mode-hook 'counsel-gtags-mode) (add-hook 'c++-mode-hook 'counsel-gtags-mode) (with-eval-after-load 'counsel-gtags (define-key counsel-gtags-mode-map (kbd "M-t") 'counsel-gtags-find-definition) (define-key counsel-gtags-mode-map (kbd "M-r") 'counsel-gtags-find-reference) (define-key counsel-gtags-mode-map (kbd "M-s") 'counsel-gtags-find-symbol) (define-key counsel-gtags-mode-map (kbd "M-,") 'counsel-gtags-go-backward))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
3.使用
<1>.创建索引
M-x counsel-gtags-create-tags
- 1
<2>.快捷键
M-t:查看函数/变量定义 M-r:查看被谁调用 M-s:查看函数 M-,:返回
- 1
- 2
- 3
- 4
<3>.例子
例如:查看ffmpeg源码中的avio_open2函数定义
M-t
- 1
匹配结果:
查询到函数avio_open2在libavformat/aviobuf.c的1241行定义,再按Enter直接进入,如下图所示结果:
M-,:返回原来得位置
M-r:查看谁调用函数avio_open2
更多原创,欢迎关注:Android系统攻城狮