我一直同时在Ubuntu上Emacs23使用PHP模式得到这个错误和类似的错误: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 starter kit,它捆绑了nxhtml版本。我尝试使用php-mode-1.5.0仍然没有成功。我甚至尝试使用最新版本的nxhtml(2.2),但仍然存在相同的错误。我不得不复制并粘贴 所有从mewde中缺失的函数定义,以便它以相对的理性工作。我不得不说,它确实增加了一些价值。 :)
有趣的事情,这个问题似乎是对我来说,我使用的在openSUSE 11.0和11.1 Emacs的同样的东西没有一个单一的问题,Ubuntu的业报唯一的问题。
谢谢。
我已经用必要的信息更新了问题。我已经合并了php-mode.el,我已经将它与一个定义了所有这些函数的函数合并在一起,并且它似乎迄今为止工作正常,并且存在一些问题。我不知道的是,为什么我似乎是唯一有这个问题的人,即使使用emacs22,也只有在Ubuntu Karmic中,我在opensuse 11.0和11.1上的emacs上使用了相同的东西,没有出现任何问题。 – partoa 2009-11-19 09:09:45
很有可能,您在opensuse上使用的Emacs有不同的东西捆绑在一起。原来的错误是因为一个函数没有被定义。它不是Emacs的一部分(不管操作系统如何),所以在这两个系统上安装了不同的支持库。 – 2009-11-19 13:56:19
我想。我甚至尝试用来自source伪造的一个来改变cc模式,以查看会发生什么,仍然发生同样的错误。我对Elisp不熟悉,否则我会选择调试底层系统,所以它不必调用未定义的函数,或者它不会抛出错误,就像opensuse一样。无论如何,这个问题现在已经解决了。感谢您的答复。 – partoa 2009-11-20 11:32:22