在Emacs中使用ECB(转载)

转自:http://joerong666.iteye.com/blog/1813876

 

By:             潘云登

Date:          2009-7-9

Email:         [email protected]

Homepage:http://blog.csdn.net/intrepyd

Copyright: 该文章版权由潘云登所有。可在非商业目的下任意传播和复制。

对于商业目的下对本文的任何行为需经作者同意。

 


写在前面

 

 

 

ECB代表的是“Emacs Code Browser”,顾名思义,用以浏览代码。ECB提供了四个窗口:

²         Directories窗口:显示目录结构;

²         Sources窗口:显示当前目录下的文件列表;

²         Methods窗口:显示当前文件中的函数/类/成员列表;

²         History窗口:显示最近访问过的文件。

本文简单介绍ECB的安装与基本配置,希望本文对您有所帮助。主要参考ECB帮助文档

 


安装 ECB

 

 

正如绝大多数Emacs插件,ECB同样要求版本兼容,具体内容参考帮助文档的Installation部分。由于ECB的显示需要semantic的支持,因此在安装ECB之前,必须正确安装cedet/semantic,可参考《在Emacs中使用CEDET》。一切准备工作就绪以后,即可下载ECB包,并将其解压到Emacs插件存放的位置,如~/.emacs.d/site-lisp/。向.emacs文件添加以下内容,将ECB的安装目录加入到Emacs的load-path中,并且在Emacs启动时加载并自动启动ECB,同时屏蔽扰人的每日提示。

 

(add-to-list load-path "/home/pydeng/.emacs.d/site-lisp/ecb-2.40")

(require ecb)

 

;;;; 自动启动ecb,并且不显示每日提示

(setq ecb-auto-activate t

      ecb-tip-of-the-day nil)

重新启动Emacs,就可以看到ECB提供的四个窗口。这时候,可以在Emacs执行“M-x ecb-byte-complie”编译,加快ECB的运行速度。

 


鼠标的支持

 

 

默认情况下,使用鼠标点击ECB窗口中的内容,不起作用。可以在Emacs中执行“M-x ecb-customize-most-important”,找到“Ecb Primary Secondary Mouse Buttons”选项,将其设为“Primary: mouse-1, secondary: mouse-2”,并且以“Save for Future Sessions”保存。

 


关于 ECB窗口的基本操作

 

 

在.emacs文件中加入如下按键绑定,方便执行ECB窗口的基本操作,包括窗口间切换、显示/隐藏ECB窗口、使ECB窗口最大化等。

;;;; 各窗口间切换

(global-set-key [M-left] windmove-left)

(global-set-key [M-right] windmove-right)

(global-set-key [M-up] windmove-up)

(global-set-key [M-down] windmove-down)

 

;;;; 隐藏和显示ecb窗口

(define-key global-map [(control f1)] ecb-hide-ecb-windows)

(define-key global-map [(control f2)] ecb-show-ecb-windows)

 

;;;; 使某一ecb窗口最大化

(define-key global-map "\C-c1" ecb-maximize-window-directories)

(define-key global-map "\C-c2" ecb-maximize-window-sources)

(define-key global-map "\C-c3" ecb-maximize-window-methods)

(define-key global-map "\C-c4" ecb-maximize-window-history)

;;;; 恢复原始窗口布局

(define-key global-map "\C-c`" ecb-restore-default-window-sizes)

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。