6

我已经安装了 Emacs Starter Kit。当我尝试安装和运行 ECB 时,它不起作用。
怎么了?如何使 ECB 与 Emacs Starter Kit 一起工作?

欧洲央行安装

我尝试了两种方法:

  1. 按照此处所述添加ecbmy-packages列表
  2. ecb使用list-packages命令安装

两种方式都给出相同的结果。在安装过程中,我收到了很多警告,例如

In ecb-test-with-original-advice-set:
ecb-advice-test.el:122:16:Warning: reference to free variable `ecb-version'

In ecb-analyse-jump-to-tag:
ecb-analyse.el:443:24:Warning: `interactive-p' is an obsolete function (as of
23.2); use `called-interactively-p' instead.

文件的总大小为 807 行,我不知道如何在此处添加它以保持帖子的可读性:)

欧洲央行的使用

当我尝试通过添加(require 'ecb)
~/.emacs.d/$USER.elEmacs 启动时出现以下错误来启动 ECB 时:

File error: Cannot open load file, ecb

该变量load-path不包含 ecb 文件的路径。当我启动 Emacs 时(require 'ecb)没有错误并且load-path确实包含字符串
"/home/maksim/.emacs.d/elpa/ecb-2.40"。添加以下行

(add-to-list 'load-path (expand-file-name "~/.emacs.d/elpa/ecb-2.40"))

使 Emacs 启动时没有错误,但 ECB 仍然无法工作,并ecb-activate按照下面描述的方式运行。

如果我尝试通过调用来启动 ECB,我会在缓冲区ecb-activate中看到以下内容:*Messages*

ECB 2.40 uses CEDET 1.0 (contains semantic 2.0, eieio 1.3, speedbar <unknown
version>).
ecb-activate-internal: Symbol's value as variable is void: stack-trace-on-error

如果我将以下行添加到~/.emacs.d/$USER.el

(setq stack-trace-on-error t)

然后ecb-activate回应以下

ECB 2.40 uses CEDET 1.0 (contains semantic 2.0, eieio 1.3, speedbar <unknown
version>).
All requirements for ECB 2.40 fulfilled - Enjoy it!
The ECB is now deactivated.
ecb-clean-up-after-activation-failure: ECB 2.40: Errors during the basic setup
of ECB. (error-type: void-function, error-data:
(ecb-enable-own-temp-buffer-show-futition))

版本信息

  • pluot 上 2011-12-06的 GNU Emacs 24.0.92.1 (x86_64-pc-linux-gnu, GTK+ Version 2.22.0)
    ,由 Debian 修改
  • emacs 入门套件 2.0.3
  • 欧洲央行 2.40
4

6 回答 6

3

我和你有同样的问题,我刚刚解决了,这是我的规格:

  • GNU Emacs 24.0.93.1(我在 Ubuntu 11.10 上使用快照 gtk 版本)
  • 入门套件 2.0.3
  • CEDET 1.0pre7(内置)
  • 来自 CVS 回购的最新 ECB (http://ecb.cvs.sourceforge.net/ecb/ecb/)

另外,我已经按照@user1150335 所说的版本号做了我不需要像@user1150335 所说的那样更改版本号。如果我遗漏了什么,或者您需要更多关于配置的信息,请告诉我。

于 2012-02-23T17:31:32.617 回答
2

github 上有一个名为newcedet的新 ECB 分支。此版本的 ECB 与新的 Emacs 版本和 CEDET 1.1 及更高版本兼容。欧洲央行邮件列表上也有关于此的讨论。

于 2012-07-04T05:46:58.347 回答
2

你应该纠正

(ecb-enable-own-temp-buffer-show-futition)

(ecb-enable-own-temp-buffer-show-function)

在ecb.el中

于 2012-03-28T02:59:42.377 回答
2
  1. 在 ecb-uprade.el 中添加 (setq version-error nil),
    这意味着没有对 cedet 的版本检查。

  2. 在 ecb.el 中正确 (ecb-enable-own-temp-buffer-show-futition) 到 (ecb-enable-own-temp-buffer-show-function)

  3. 删除 ecb.elc 和 ecb-upgrade.elc

  4. Mx 字节编译文件 ecb.el 和 ecb-upgrade.el

  5. 在 .emacs 或 .emacs.d/init.el 中添加 (setq stack-trace-on-error t)

  6. Mx ecb-active

于 2012-09-03T20:14:17.677 回答
2

尝试编辑 ecb-cedet-required-version-max 变量(它在 ecb-cedet-wrapper.el 中)。为我工作。更新:我不知道您使用的是哪个版本的 cedet。但是有一个例子我是怎么做的,一步一步:

  1. (setq stack-trace-on-error t) (将其添加到您的 .emacs 文件中)
  2. 接下来,您应该找到一个变量 ecb-cedet-required-version-max。在我的 cedet 版本中,它位于 ecb-cedet-wrapper.el:83
  3. 要绕过版本检查,它应该大于当前安装的 cedet。(defconst ecb-cedet-required-version-max '(1 2 4 9) 将适用于所有当前可用的版本。
  4. 就这样。重启 emacs 进行测试。

由于某种原因,即使在更正之后,stack-trace-on-error 也必须为真。我使用 GNU Emacs 24.0.92.1、CEDET 版本:1.1beta(最后一次从 bzr 签出)和最后一次从 cvs 签出 ecb 对其进行了测试。我现在并没有真正使用 ecb,但我尝试了 ecb-byte-compile、ecb-activate、ecb-deactivate、跳转到 ecb 窗口(方法、目录、源),打开 cpp 和 elisp 文件。一切正常。

于 2012-01-15T12:24:10.250 回答
1

安装ecb-snapshot

M-x package-list-packages

并从中选择ecb-snapshot。也把它放在你的 ~/.emacs.d/$USER.el

(require 'ecb)
(setq stack-trace-on-error t)
于 2013-01-11T10:47:53.563 回答