刚升级了一下我的arch,emacs由23升级到了24,升级后发现很多插件出问题了,包括cedet、ecb和jdee等,在Google搜了一小时,终于把问题给解决了。下面就把解决的方法分享出来,希望对大家有所帮助。
1. cedet
这个问题比较好解决,升级到1.1就能和emacs 24兼容。
2. ecb
ecb已多年没更新了,最新的ecb-2.40只兼容cedet版本 1.0.6pre ~ 1.0.9,解决的方法是修改/path/to/ecb-2.40/ecb-upgrade.el,将1146行的
(defconst ecb-required-cedet-version-max '(1 0 4 9))
改为
(defconst ecb-required-cedet-version-max '(1 1 4 9))
这样就OK了。
3. jdee
问题之一也是jdee不兼容cedet 1.1,解决方法同ecb,修改支持的最大版本号,修改/path/to/jdee-2.4.0.1/lisp/jde.el文件,将43行的
(defconst jde-cedet-max-version "1.0"
修改为
(defconst jde-cedet-max-version "1.1"
然后删除/path/to/jdee-2.4.0.1/lisp/jde.elc,如果想编译jde.elc,可以打开emacs,输入M-x byte-compile-file,文件是/path/to/jdee-2.4.0.1/lisp/jde.el,如果编译成功就会生成jde.elc。
另外的问题是jdee使用了emacs 24不再支持的函数,解决方法是在~/.emacs文件中添加以下内容:
(defun screen-width nil -1) (define-obsolete-function-alias 'make-local-hook 'ignore "21.1")
4. done
完成以上三步就大功告成,又可以使用emacs来写java程序了。
如果有问题,欢迎批评指正。
5. 参考资料
- Emacs24+cedet+ecb+jdee配置时出现的若干问题
- installing JDEE and CEDET with Emacs 24