Frage

Ich erhalte diesen Fehler und ähnliche Fehler immer wieder, während ich PHP-Mode auf EMACS23 auf Ubuntu verwende:

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)

Wenn ich tippe if(, und der Fehler unten, wenn ich tippe array( oder irgendetwas, das mit endet array(, z.B 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)

Dieser Fehler wird auch dann erhöht, wenn ich das EMACS -Starter -Kit verwende. Hat jemand ein ähnliches Problem behoben?

Der Php-Modus.EL Ich verwende aus dem Emacs Starter Kit das bündelt eine Version von nxhtml. Ich habe versucht zu benutzen PHP-Mode-1.5.0 immer noch kein Erfolg. Ich habe sogar versucht, die neueste Version von NXHTML (2.2) zu verwenden, aber immer noch der gleiche Fehler blieb bestehen. Ich musste alle Funktionsdefinitionen kopieren und einfügen, bei denen ich fehlte Mewde damit es mit relativer geistiger Gesundheit arbeitet. Ich muss sagen, dass es einen gewissen Wert hinzufügt. :)

Das Lustige, diese Probleme scheinen für mich ein Problem mit Ubuntu Karmic zu sein. Ich habe das gleiche Zeug auf den EMACs bei OpenSuse 11.0 und 11.1 ohne ein einziges Problem verwendet.

Vielen Dank.

War es hilfreich?

Lösung

Das Problem ist, dass etwas versucht, die undefinierte Funktion zu nennen 'php-template-if-hook.

Es wäre nützlich, wenn Sie einen Link zu dem Ort gegeben haben, an dem Sie das gefunden haben php-mode.el Sie verwenden, weil es scheinbar zu geben scheint mehrere.

Das Symbol 'php-template-if-hook ist kein Teil der php-mode.el Auf SourceForge haben Sie entweder eine andere Version, oder es gibt noch etwas in Ihren .Emacs, das das Problem verursacht. Es sieht so aus, als würde etwas eine Abbrev -Insertion auslösen, die zu 'führt'php-template-if-hook. Notiz: es sieht aus wie Menschen auf dem Stack-Überlauf verwenden den PHP-Modus von SourceForge. Ich würde daher empfehlen, auf diese zu wechseln.

Eine schnelle Google -Suche findet dies php-mode.el, was definiert 'php-template-if-hook sein:

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

Das Lösen Ihres Problems durch das Schneiden/Einfügen von Zufallscode aus den Intertubes ist jedoch keine gute langfristige Lösung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top