22

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

Emacswiki有以下文本

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

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

TODO:请说明您需要哪些代码来加载 CEDET 提供的最有用的 IDE 工具

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

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

3 回答 3

18

你需要考虑几件事情:

  • CEDET 与 GNU Emacs 24.2 捆绑在一起,但它有点过时了......从功能的角度来看,来自 bzr 的 CEDET 1.1 或 CEDET 更好。我希望 Emacs 24.3 会有新版本的 CEDET
  • 我有一个ECB 的分支,它适用于新的 CEDET(1.1 或 bzr)以及与 Emacs 捆绑的 CEDET - 但您需要手动安装它
  • 您可以使用以下配置启用与 GNU Emacs 或来自 bzr 的 CEDET 捆绑的 CEDET ,对于 CEDET 1.1,您可以使用以下配置

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

于 2012-10-03T20:33:30.897 回答
6

Q1:是与否:CEDET 是捆绑的,但 ECB 不是。虽然 CEDET 是捆绑的,但由于部分历史和部分技术原因,主要开发一直在 Emacs 存储库之外进行。

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

于 2012-10-03T17:57:04.553 回答
2

Emacs 代码浏览器很棒,但我花了几天时间才弄清楚如何在我当前的 Emacs 24.5.1 上设置它让我满意。希望以下说明将有助于使其更受欢迎。

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

sudo apt-get install texinfo

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

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

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

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

第 3 步:将以下内容添加到您的 emacs 初始化文件(~/.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

第四步:重启emacs,在emacs中打开一个python源文件(作为测试示例)然后输入:mx ecb-activate

如果您在左侧有一个方法列表窗口,在右侧有源文件视图,那么您就可以正常工作了。

于 2015-07-08T12:42:04.063 回答