Pregunta

Sigo recibiendo este error y similares errores durante el uso de php-mode en Emacs23 en Ubuntu:

Debugger entered--Lisp error: (void-function php-template-if-hook)
  php-template-if-hook()
  abbrev-insert(if #("if" 0 2 (fontified t face font-lock-keyword-face)) 414 416)
  #[(G73404 funs global) "[Byte Code]"
  apply(#[(G73404 funs global "[Byte Code]"
  (lambda (&rest --cl-rest--) (apply #[... "[Byte Code]"
  expand-abbrev()
  self-insert-command(1)
  c-electric-paren(nil)
  call-interactively(c-electric-paren nil nil)

cuando escribo if(, y el error abajo cuando escribo array( o cualquier cosa que termina con array(, por ejemplo is_array(:

Debugger entered--Lisp error: (void-function php-template-if-hook)
  php-template-if-hook()
  abbrev-insert(if #("if" 0 2 (fontified t face font-lock-keyword-face)) 414 416)
  #[(G73404 funs global) "[Byte code]"
  apply(#[(G73404 funs global "[Byte Code]"
  (lambda (&rest --cl-rest--) (apply #[... "[Byte Code]"
  expand-abbrev()
  self-insert-command(1)
  c-electric-paren(nil)
  call-interactively(c-electric-paren nil nil)

Este error se eleva incluso cuando se utiliza el kit de arranque emacs. Cualquier persona fija un problema similar?

El php-mode.el que uso es de la emacs kit de inicio que lía una versión de nxhtml . He intentado utilizar modo php-1.5.0 aún sin éxito. Incluso he intentado usar la versión más reciente de nxhtml (2.2), pero aún persistía el mismo error. Tuve que copiar y pegar todas las definiciones de las funciones que faltan en mewde para que funcione con relativa cordura . Tengo que decir que se le añade algún valor sin embargo. :)

Lo curioso, este problema parece ser una única Ubuntu Karmic problema para mí, yo estaba usando el mismo material en las emacs en openSUSE 11.0 y 11.1 sin un solo problema.

Gracias.

¿Fue útil?

Solución

El problema es que algo está tratando de llamar a la función no definida 'php-template-if-hook.

Sería útil si ya ha proporcionado un enlace a donde se encuentra el php-mode.el que está utilizando, porque parece que hay varios .

El símbolo 'php-template-if-hook no es una parte de la php-mode.el en sourceforge, por lo que o bien tienen una versión diferente, o hay algo más en su .emacs que está causando el problema. Parece como si algo está provocando una inserción de abreviaturas que conduce a 'php-template-if-hook. Nota: parece que gente en desbordamiento de pila están utilizando el php -Modo de SourceForge, así que recomiendo mover a esa pregunta.

Una rápida búsqueda en Google encuentra este php-mode.el , que define 'php-template-if-hook a ser:

(defun php-template-if ()
  "Insert an if statement."
  (interactive)
  (let ((start (point)))
    (insert "if ")
    (insert "(") ; +
    (when (php-template-field "condition" nil t start (point))
      (insert ") {") ; +
      (newline-and-indent)
      (setq start (point-marker))
      (insert "\n}")
      (php-indent-line-2)
      (goto-char start))))

Sin embargo, la solución de su problema cortando / código aleatorio pegar desde los intertubes no es una buena solución a largo plazo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top