Emacs23 problème php mode
Question
Je continue à obtenir cette erreur d'erreur et similaires en utilisant le mode php-on emacs23 sur 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)
quand je tape if(
, et l'erreur ci-dessous lorsque je tape array(
ou quelque chose qui se termine par array(
, par exemple, 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)
Cette erreur est élevée, même lorsque j'utilise le kit de démarrage emacs. Tout le monde fixe un problème similaire?
Le php-mode.el j'utilise est du kit de démarrage emacs qui faisceaux une version de nxhtml . J'ai essayé d'utiliser php-mode 1.5.0 toujours sans succès. J'ai même essayé d'utiliser la dernière version de nxhtml (2.2), mais toujours la même erreur persistait. Je devais copier-coller toutes les définitions de fonctions manquantes de mewde pour que cela fonctionne avec la santé mentale par rapport . Je dois dire que cela n'ajoute une valeur bien. :)
Le plus drôle, ce problème semble être un problème que Ubuntu Karmic pour moi, j'utilisais la même chose sur les emacs sur openSUSE 11.0 et 11.1 sans aucun problème.
Merci.
La solution
Le problème est que quelque chose essaie d'appeler la 'php-template-if-hook
fonction non définie.
Il serait utile si vous avez fourni un lien à l'endroit où vous avez trouvé le php-mode.el
que vous utilisez, car il semble y avoir plusieurs .
Le 'php-template-if-hook
symbole ne fait pas partie du php-mode.el
sur sourceforge, donc soit vous avez une version différente, ou il y a quelque chose d'autre dans votre .emacs qui cause le problème. Il semble que quelque chose déclenche une insertion SIGLE qui conduit à « php-template-if-hook
. Note: il ressemble les gens sur un débordement de pile utilisent le php -MODE de sourceforge, donc je vous recommande de passer à celui-là.
Une recherche rapide Google trouve cette php-mode.el
, qui définit 'php-template-if-hook
être:
(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))))
Mais, résoudre votre problème en coupant / coller le code aléatoire des intertubes est pas une bonne solution à long terme.