Chinaunix首页 | 论坛 | 博客
  • 博客访问: 144270
  • 博文数量: 36
  • 博客积分: 901
  • 博客等级: 准尉
  • 技术积分: 592
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-07 13:31
文章分类

全部博文(36)

文章存档

2013年(14)

2012年(22)

我的朋友

分类: LINUX

2012-10-17 17:50:22

ecb提供了很多可视化的代码阅读功能。安装ecb之前,必须安装cedet。

1、安装Cedet套件:
1.1 下载Cedet

      请到Cedet主页:, 下载Cedet套件cedet-1.0pre6.tar.gz

1.2 解压Cedet
     # tar -zvxf cedet-1.0pre6.tar.gz
      解压完后会在当前目录多出一个cedet-1.0pre6的目录.

1.3 编译Cedet
      进入到cedet-1.0pre6目录:
     # cd cedet-1.0pre6
      编译:
     # make EMACS=emacs

      如果这里没有安装texinfo, 会出现makeinfo命令未找到的出错. 请把texinfo安装就行了.
      更多的编译过程, 请参阅cedet-1.0pre6目录下的INSTALL文件.

1.4 配置Cedet
      打开.emacs, 在最后加入:
      (load-file "/home/download/cedet-1.0pre6/common/cedet.el")
      (global-ede-mode 1)                      ; Enable the Project management system
      (semantic-load-enable-code-helpers)      ; Enable prototype help and smart completion 
      (global-srecode-minor-mode 1)            ; Enable template insertion menu
更多的配置, 请参阅cedet-1.0pre6目录下的INSTALL文件.
到此, Cedet套件已安装好, 接下来安装Ecb.

注1:XEmacs用户及Java-coder请参阅: 

 

2 安装Ecb
2.1 下载Ecb

    请到Ecb主页:, 下载ecb-2.40.tar.gz.

2.2 解压Ecb
    # tar ecb-2.40.tar.gz
    解压完后会在当前目录下多出一个ecb-2.40目录.

2.3 添加Ecb目录到load-path变量
    你可以在.emacs文件最后添加以下代码, 也可以在site-list/site-start.el文件下添加:
    (add-to-list 'load-path
                     "/path/to/your/ecb/installation/directory")
注意:上面那行代码里的" "里面是指你解码完的那个目录. 例如我的是/home/download/ecb-2.40

2.4 加载Ecb
    在.emacs文件最后加上以下代码:
    (require 'ecb)
    (require 'ecb-autoloads)

重启Emacs, 打开一个C/CPP文件, 选择tool->start code browser, 试一下效果吧.
当然, 做到这一步, 仅仅只是让Emacs看起来像个IDE, 实际上还有很多功能, 例如像Smart Completion, Symbol References, Code Generation, UML Diagrams等功能都要动手配置.emacs文件才可以完成.

以下的配置可以利用DECET让你更好的编写代码:(这些代码必须放在加载CEDET之后和ECB之前)

(require 'semantic-ia)
(require 'semantic-gcc)


;; Enable template insertion menu
(global-srecode-minor-mode 1)            

(setq-mode-local c-mode semanticdb-find-default-throttle
         '(project unloaded system recursive))

(defun my-semantic-hook ()
  (imenu-add-to-menubar "TAGS"))

(add-hook 'semantic-init-hooks 'my-semantic-hook)

(require 'semanticdb)

(global-semanticdb-minor-mode 1)

(defun my-cedet-hook ()
  (local-set-key [(control return)] 'semantic-ia-complete-symbol)
  (local-set-key "/C-c?" 'semantic-ia-complete-symbol-menu)
  (local-set-key "/C-c>" 'semantic-complete-analyze-inline)
  (local-set-key "/C-cp" 'semantic-analyze-proto-impl-toggle))
(add-hook 'c-mode-common-hook 'my-cedet-hook)

(defun my-c-mode-cedet-hook ()
 (local-set-key "." 'semantic-complete-self-insert)
 (local-set-key ">" 'semantic-complete-self-insert))
(add-hook 'c-mode-common-hook 'my-c-mode-cedet-hook)


更多的信息请参阅:


转自:http://blog.csdn.net/yaowenjue/article/details/4699806

阅读(2184) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~