Emacs+Cedet+Cscope+Ecb就可以实现除了Code Refactory(理论上也可以)之外的所有必须功能:
- 项目管理
- 自动补全
- 符号索引
- 代码生成
- UML绘图
- 代码浏览
- 代码折叠等等
1. 安装
本文介绍Cedet 的安装和配置。关于Cedet的帮助,除了官方网站,就是lisp文件中的注释和Alex Ott的A Gentle introduction to Cedet 。本文不过是Alex Ott的这篇guide的简化版(当然功能不会简化:))。
1. 如果安装了Cedet包,请先卸载(我的机器是Debian Squeeze,之前安装了Cedet deb包,按照Alex的指南进行配置,就会出现一个叫做inversion-xxx什么的函数没有定义);
2. 从官网上下载最新的Cedet压缩包,解压之,假设目录是~/elisp/cedet-1.0pre6;
3. 进入该目录,运行
$ emacs -Q -l cedet-build.el -f cedet-build
或者
$ emacs -Q -nw -l cedet-build.el -f cedet-build -f save-buffers-kill-terminal
4. 在emacs的配置文件,一般是~/.emacs中加入如下语句
(load-file "~/elisp/rc/emacs-rc-cedet.el")
2. 配置
这个emacs-rc-cedet.el 是根据Alex Ott的配置文件 改的。其中有一句是最关键的,不能注释掉,
(load-file "~/elisp/cedet-1.0pre6/common/cedet.el")
这是加载cedet。另外,如果需要在键入.或者->时自动显示成员,需要打开这两句的注释
;; (local-set-key "." 'semantic-complete-self-insert)
;; (local-set-key ">" 'semantic-complete-self-insert)
3. 快捷键
这个配置文件定义了若干快捷键,列在下面,(其中C-表示Ctrl-的意思)
C-<Ret> 在弹出的菜单中显示自动补全信息
C-c? 在新的缓冲中显示自动补全信息
C-c> ?
C-c= ?
C-cj 跳到声明处
C-cq 显示文档
C-cs 显示摘要
C-cp ?
EAssist快捷键
C-ct 切换头文件和代码文件
C-ce 显示方法列表
C-cC-r 显示符号的引用情况
F9 编译
4. 其他
如果出现类似
#include <stdio.h>
的情况,表明这个头文件没有被parse过。将光标移至该语句,菜单栏中会出现一个unparsed include的菜单,选择parse this include即可。
如果出现
#include <opencv/cv.h>
的情况,表明cedet找不到这个头文件。将光标移至该语句,菜单栏中会出现一个unknown include的菜单,其中有设置系统搜索路径的选项,设置即可。