在Emacs 24中使用Emacs Starter Kit安装ECB

时间:2012-01-12 10:07:10

标签: emacs emacs24

我安装了Emacs入门套件。当我尝试安装和运行ECB时,它不起作用 怎么了?如何让ECB与Emacs Starter Kit一起使用?

ECB安装

我尝试了两种方法:

  1. here
  2. 所述,将ecb添加到my-packages列表
  3. 使用ecb命令安装list-packages
  4. 两种方式都给出相同的结果。在安装过程中,我收到了很多警告,比如

    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行,我不知道如何在此处添加它以保持帖子可读:)

    ECB用法

    当我尝试通过添加(require 'ecb)来启动ECB时 到~/.emacs.d/$USER.el以下错误发生在Emacs start:

    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
    • ecb 2.40

6 个答案:

答案 0 :(得分:3)

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

  • GNU Emacs 24.0.93.1(我在Ubuntu 11.10上使用了快照gtk版本)
  • starter-kit 2.0.3
  • CEDET 1.0pre7(它是内置的)
  • 来自CVS repo的最新ECB(http://ecb.cvs.sourceforge.net/ecb/ecb/)<< li>

另外我已经做了@ user1150335用版本号说我不需要更改版本号,因为@ user1150335说。如果我错过了某些内容,或者您​​需要更多关于配置的信息,请告诉我。

答案 1 :(得分:3)

  1. 添加 (setq version-error nil)在ecb-uprade.el中 这意味着没有cedet的版本检查。

  2. 正确 (ECB启用 - 拥有 - 临时缓冲 - 展示 - futition) 至 (ECB启用 - 拥有 - 临时缓冲 - 显示功能) 在ecb.el

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

  4. M-x byte-compile-file ecb.el和ecb-upgrade.el

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

  6. M-x ecb-active

答案 2 :(得分: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进行测试。
  5. 由于某些原因,即使在校正之后,堆栈跟踪错误也必须为真。 我用GNU Emacs 24.0.92.1,CEDET版本:1.1beta(最后一次从bzr结账)以及最后一次从cvs签出ecb进行测试。 我现在并不真正使用ecb,但我尝试了ecb-byte-compile,ecb-activate,ecb-deactivate,跳转到ecb windows(方法,dirs,sources),打开cpp和elisp文件。一切正常。

答案 3 :(得分:2)

你应该纠正

(ECB启用-自有临时缓冲 - 显示 - futition)

(ECB启用-自有临时缓冲 - 显示功能)

在ecb.el

答案 4 :(得分:2)

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

答案 5 :(得分:1)

安装ecb-snapshot

M-x package-list-packages

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

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