EMACS23 PHP- 모드 문제
문제
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))))
그러나 인터 튜브에서 임의 코드를 자르거나 붙여서 문제를 해결하는 것은 좋은 장기 솔루션이 아닙니다.