【问题标题】:Install ECB with Emacs Starter Kit in Emacs 24在 Emacs 24 中使用 Emacs Starter Kit 安装 ECB
【发布时间】:2012-01-12 10:07:10
【问题描述】:

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

ECB 安装

我尝试了两种方法:

  1. ecb 添加到my-packages 列表中,如here 所述
  2. 使用list-packages 命令安装ecb

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

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) 来启动 ECB
~/.emacs.d/$USER.el Emacs 启动时出现以下错误:

File error: Cannot open load file, ecb

变量load-path 不包含ecb 文件的路径。当我在没有(require 'ecb) 的情况下启动 Emacs 时,没有错误,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-activate 来启动 ECB,我会在 *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))

版本信息

  • GNU Emacs 24.0.92.1(x86_64-pc-linux-gnu,GTK+ 版本 2.22.0)
    2011-12-06 在 pluot 上,由 Debian 修改
  • emacs-starter-kit 2.0.3
  • 欧洲央行 2.40

【问题讨论】:

    标签: emacs emacs24


    【解决方案1】:

    我遇到了和你一样的问题,我刚刚解决了,这是我的规格:

    • 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 所说的那样更改版本号。如果我遗漏了什么或者您需要更多有关配置的信息,请告诉我。

    【讨论】:

    • 这行得通!谢谢!下载新版本的欧洲央行解决了这个问题。但是我不得不在我的配置文件中添加(setq stack-trace-on-error t)(可能是因为我有不同版本的emacs)。
    • 很高兴它有帮助,是的,我忘了提到那个 setq 段落。
    • 在带有 Emacs24 的 Ubuntu 12.10 上,我刚刚更新了 ECB 并将 stack-on-error 命令添加到 init.el,就像 Maksim Zholudev 建议的那样。奇迹般有效!谢谢
    【解决方案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 文件。一切正常。

    【讨论】:

    • 我对这个变量的实验的唯一结果是让欧洲央行在每个命令之后做出类似“你的 CEDET 版本错误”的响应。这使得我无法取消我的编辑,因为ecb-byte-compile 不起作用。欧洲央行仍然想要stack-trace-on-error 变量。看起来欧洲央行只是不支持 Emacs 24 并且不会:(
    【解决方案3】:

    你应该改正

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

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

    在 ecb.el 中

    【讨论】:

      【解决方案4】:

      在 github 上有一个名为 newcedet 的新 ECB 分支。此版本的 ECB 与新的 Emacs 版本和 CEDET 1.1 及更高版本兼容。还有discussions on the ECB mailing list与此有关。

      【讨论】:

      • 这对我有用(我使用的是最新的 bzr emacs,安装 elpa 的 ecb 对我大喊大叫)谢谢 Arne!
      • 看起来像一个 github 问题。请稍后再试。
      【解决方案5】:
      1. 添加 (setq version-error nil) 在 ecb-uprade.el
        这意味着没有对 cedet 的版本检查。

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

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

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

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

      6. M-x ecb-active

      【讨论】:

        【解决方案6】:

        安装ecb-snapshot

        M-x package-list-packages
        

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

        (require 'ecb)
        (setq stack-trace-on-error t)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-04-02
          • 1970-01-01
          • 1970-01-01
          • 2013-06-19
          • 1970-01-01
          • 1970-01-01
          • 2018-06-23
          相关资源
          最近更新 更多