Pregunta

Tengo el kit de inicio de Emacs instalado. Cuando intento instalar y ejecutar el BCE, no funciona.
¿Qué está mal? ¿Cómo hacer que el BCE funcione con el kit de inicio de Emacs?

Instalación del BCE

He probado dos formas:

  1. Suplente ecb a my-packages Lista como se describe aquí
  2. Instalación ecb con list-packages dominio

Ambas formas dan el mismo resultado. Durante la instalación recibí muchas advertencias como

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.

El tamaño total del archivo es 807 líneas y no sé cómo agregarlo aquí manteniendo la publicación legible :)

Uso del BCE

Cuando trato de comenzar el BCE agregando (require 'ecb)
a ~/.emacs.d/$USER.el El siguiente error ocurre al inicio de emacs:

File error: Cannot open load file, ecb

La variable load-path no contiene la ruta a los archivos del BCE. Cuando empiezo las emacs sin (require 'ecb) no hay errores y load-path contener la cadena
"/home/maksim/.emacs.d/elpa/ecb-2.40". Agregar la siguiente línea

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

hace que los emacs comienzan sin errores, pero el BCE aún no funciona y ecb-activate actúa de la manera descrita a continuación.

Si trato de comenzar el BCE llamando ecb-activate Veo lo siguiente en el *Messages* buffer:

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

Si agrego la siguiente línea a ~/.emacs.d/$USER.el

(setq stack-trace-on-error t)

después ecb-activate responde lo siguiente

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))

Información de versión

  • GNU EMACS 24.0.92.1 (x86_64-pc-Linux-gnu, GTK+ versión 2.22.0)
    de 2011-12-06 en pluot, modificado por Debian
  • emacs-starter-kit 2.0.3
  • ECB 2.40
¿Fue útil?

Solución

Estaba teniendo los mismos problemas que tú, lo acabo de resolver, aquí están mis especificaciones:

  • GNU Emacs 24.0.93.1 (estoy usando la versión GTK de instantánea en Ubuntu 11.10)
  • titter-kit 2.0.3
  • CEDET 1.0PRE7 (es el incorporado)
  • Último BCE de CVS Repo (http://ecb.cvs.sourceforge.net/ecb/ecb/)

Además, he hecho lo que @user1150335 dijo con el número de versión No necesitaba cambiar el número de versión como dijo @user1150335. Avíseme si me he perdido algo o si necesita algo más sobre la configuración.

Otros consejos

  1. add (setq versión-error nil) en ECB-UPRADE.EL
    lo que significa que no hay verificación de versión de CEDET.

  2. Correcto (ECB-Dow-Dow-Temp-Buffer-Show-Futition) a (Funcion-Buffer-Show-Show-Funcion) en ECB.EL

  3. Eliminar ECB.ELC y ECB-UPGRADE.ELC

  4. MX BYTE-COMPILE-FILE ECB.EL y ECB-UPGRADE.EL

  5. Agregar (setq stack-trace-on-error t) en .emacs o .emacs.d/init.el

  6. MX ECB-ACTIVE

Intente editar la variable de ECB-CEDET-Version-Max (está en ECB-CEDET-Wrapper.el). Trabajó para mi. ACTUALIZACIÓN: No sé qué versión de CEDET estás usando. Pero hay un ejemplo de cómo lo hice, paso a paso:

  1. (setq stack-trace-on-error t) (agrégalo a su archivo .emacs)
  2. A continuación, debe encontrar una variable-CEDET requerida-CEDET-MAX. En mi versión de CEDET está en ECB-CEDET-WRAPPER.EL: 83
  3. Para omitir la versión, verifique que sea más grande que el CEDET instalado actualmente. (Defconst ECB-CEDET requirro-Versión-Max '(1 2 4 9) hará el truco para todas las versiones disponibles actualmente.
  4. Eso es todo. Reinicie emacs para probarlo.

Por alguna razón, la pila-trace-on-error debe ser cierto incluso después de la corrección. Lo probé con GNU Emacs 24.0.92.1, Versión de CEDET: 1.1BETA (último pago de BZR) y la última pago del BCE de CVS. Realmente no uso ECB hoy en día, pero probé ECB-byte-compile, ECB-activate, ECB-desactivate, salta a Windows (métodos, DIR, fuentes), CPP abre y archivos ELISP. Todo funciona bien.

Deberías corregir

(ECB-Enable-Temp-Buffer-Show-Futition)

a

(Función-Buffer-Buffer-Show-Show-Temp-Buffer)

en BCB.EL

Hay una nueva sucursal del BCE en GitHub llamada Newcedet. Esta versión de BCE es compatible con nuevas versiones de EMACS y CEDET 1.1 y superior. También hay discusiones en la lista de correo del BCE sobre esto.

Instalar ecb-snapshot

M-x package-list-packages

y seleccione ECB-Snapshot de él. También coloque esto en su ~/.emacs.d/$ user.el

(require 'ecb)
(setq stack-trace-on-error t)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top