CEDET和ECB在Emacs中的地位24.2

时间:2012-10-03 15:28:58

标签: emacs cedet emacs-ecb

我对在Emacs 24.2.1中运行CEDET和ECB需要做些什么感到困惑。

Emacswiki has the following text

  

如何启用与Emacs合并的CEDET工具

     

在Emacs 23.2中,CEDET被合并到主要的Emacs发行版中。该   在CEDET教程中解释的配置代码不起作用   了。例如你不能使用   (semantic-load-enable-gaudy-code-helpers)启用有用的功能   特征

     

TODO:请解释加载最有用的IDE所需的代码   CEDET提供的工具

     

我有一个基本配置,可以在我的.emacs中使用以下内容:

(global-ede-mode 1)
(require 'semantic/sb)
(semantic-mode 1)
  • Q1: CEDET和ECB现在是否与Emacs捆绑在一起?如果是这样,为什么有一个单独的Sourceforge项目呢?
  • Q2:如何在Emacs 24.2中启用CEDET和ECB?我是否仍需要从相应的网站下载源代码并单独安装?

3 个答案:

答案 0 :(得分:18)

您需要考虑以下几点:

  • CEDET与GNU Emacs 24.2捆绑在一起,但它稍微过时......从功能的角度来看,bzr的CEDET 1.1或CEDET更好。我希望,Emacs 24.3将有新版CEDET
  • 我有fork of ECB,适用于新鲜的CEDET(1.1或bzr)& CEDET与Emacs捆绑在一起 - 但您需要手动安装
  • 您可以使用following config从bzr启用与GNU Emacs或CEDET捆绑的CEDET,对于CEDET 1.1,您可以使用following config

P.S。我会尝试在这里回答更多问题,或者你可以直接通过电子邮件给我写信

答案 1 :(得分:6)

Q1:是和否:CEDET捆绑在一起,但欧洲央行不捆绑。虽然捆绑了CEDET,但由于部分历史和部分技术原因,主要开发工作仍在Emacs的存储库之外进行。

Q2:(semantic-mode 1)(global-ede-mode 1)应足以启用CEDET(无需(require 'semantic/sb))。 至于欧洲央行,由于它没有捆绑,......

答案 2 :(得分:2)

Emacs Code Browser晃动,但我花了几天时间才弄清楚如何在目前的Emacs 24.5.1上将其设置为令我满意。希望以下说明有助于使其更受欢迎。

步骤1:在Ubuntu上:通过以下方式安装texinfo:

sudo apt-get install texinfo

这实际上安装了makeinfo,这是安装ecb所必需的。 Mac可能已经安装了makeinfo - 我认为我不必在Mac上安装texinfo。

第2步:使用el-get安装ecb。在'el-get emacs'上进行网络搜索,了解有关el-get的更多信息。使用el-get的优点是它会自动处理将ecb添加到emacs加载路径。

顺便说一句,使用el-get安装ecb似乎需要15分钟左右的时间。请耐心等待,如果它告诉您正在运行活动进程,请不要退出emacs。

当el-get完成后,它会显示一条消息:ecb已成功安装(或类似的东西)

步骤3:将以下内容添加到您的emacs init文件中(〜/ .emacs.d / init.el或〜/ .emacs - 对已存在的这两个文件中的任何一个进行编辑)

;; start of ecb configuration/customization:
;;
(require 'ecb)


(setq stack-trace-on-error t)
(setq ecb-version-check nil)
(setq ecb-layout-name "left15")
(setq ecb-tip-of-the-day nil)
(setq ecb-primary-secondary-mouse-buttons 'mouse-1--mouse-2)


(setq ecb-source-file-regexps
  '((".*" .     (("\\(^\\(\\.\\|#\\)\\|\\(~$\\|\\.\\(pyc\\|elc\\|obj\\|o\\|class\\|lib\\|dll\\|a\\|so\\|cache\\)$\\)\\)")
             ("^\\.\\(emacs\\|gnus\\)$")))))



;;
;; disable global semantic idle scheduler.
;; it doesn't really seem to work all that well in automatically
;; reparsing buffers and it's actually intrusive when i'm typing:

(add-hook 'ecb-activate-hook
          '(lambda()
             (semantic-mode t)
             (ecb-maximize-window-methods)
             (setq global-semantic-idle-scheduler-mode nil)
             ))



(add-hook 'after-save-hook
          '(lambda()
             (when (bound-and-true-p ecb-minor-mode)
               ;; this is to get the methods buffer to refresh correctly.
               ;; semantic idle mode refresh doesn't seem to work all that     well.
               (run-at-time 1 nil 'semantic-force-refresh)
               )
             ))


(set-face-attribute 'ecb-default-general-face nil
                    :inherit 'default)

(set-face-attribute 'ecb-default-highlight-face nil
                    :background "#464646")

(set-face-attribute 'ecb-tag-header-face nil
                    :background "#464646")
;;
;; end of ecb configuration/customization

步骤4:重新启动emacs,在emacs中打开python源文件(作为测试示例),然后键入:M-x ecb-activate

如果左侧有方法列表窗口,右侧有源文件视图,那么就可以了。