문제

Ubuntu의 EMACS23에서 PHP 모드를 사용하는 동안이 오류와 유사한 오류를 계속받습니다.

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)

내가 입력 할 때 if(, 그리고 내가 입력 할 때 아래의 오류 array( 또는 끝나는 것 array(, 예를 들어 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)

이 오류는 EMACS 스타터 키트를 사용하더라도 제기됩니다. 누구든지 비슷한 문제를 해결 했습니까?

내가 사용하는 php-mode.el은 EMACS 스타터 키트 버전을 묶습니다 nxhtml. 나는 사용을 시도했다 PHP-Mode-1.5.0 아직 성공하지 못했습니다. 최신 버전의 NXHTML (2.2)을 사용해 보았지만 여전히 동일한 오류가 지속되었습니다. 누락 된 모든 기능 정의를 복사하여 붙여 넣어야했습니다. Mewde 상대적인 정신과 함께 일하기 위해. 그래도 가치를 더한다고 말해야합니다. :)

재미있는 일,이 문제는 저에게 우분투 업장 유일한 문제인 것 같습니다. 나는 단일 문제없이 OpenSuse 11.0 및 11.1의 EMACS에서 동일한 것들을 사용하고있었습니다.

감사.

도움이 되었습니까?

해결책

문제는 무언가가 정의되지 않은 함수를 호출하려고한다는 것입니다. 'php-template-if-hook.

발견 한 위치에 대한 링크를 제공하면 유용 할 것입니다. php-mode.el 당신은 사용 중입니다 몇몇의.

상징물 'php-template-if-hook 의 일부가 아닙니다 php-mode.el SourceForge에서는 다른 버전이 있거나 문제를 일으키는 다른 버전이 있습니다. 마치 무언가가 '로 이어지는 약제 삽입을 유발하는 것처럼 보입니다.php-template-if-hook. 메모: 보입니다 Stack Overflow의 사람들은 Sourceforge의 PHP 모드를 사용하고 있으므로 그로 이동하는 것이 좋습니다.

빠른 Google 검색에서 찾을 수 있습니다 php-mode.el, 정의 된 'php-template-if-hook 되려고:

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

그러나 인터 튜브에서 임의 코드를 자르거나 붙여서 문제를 해결하는 것은 좋은 장기 솔루션이 아닙니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top