我使用的是Emacs 23和php-mode.el 1.5.0.当我在我的这个.emacs:
(require 'php-mode)
Run Code Online (Sandbox Code Playgroud)
我在Emacs启动时收到此错误消息:
警告(初始化):加载`/Users/kdj/.emacs'时出错:
错误:必须在文件中使用`c-lang-defconst'
为确保正常运行,您应该调查并删除初始化文件中的错误原因.使用`--debug-init'选项启动Emacs以查看完整的错误回溯.
如果我(require 'php-mode)在Emacs启动后评估,我不会收到任何错误消息.
我找到了一个博客条目,表明此问题是Emacs 23特有的(也就是说,Emacs 22.x没有错误),但它没有提供任何解决方案.
我不知道这是否重要,但我使用的是Mac OS X,并且我使用当前的CVS源构建了Emacs ./configure --with-ns.
这里发生了什么,和/或我如何解决它?
对于我最喜欢的模式,我使用以下代码片段在启动时加载hs-minor-mode:
(add-hook '____-mode-hook 'hs-minor-mode)
Run Code Online (Sandbox Code Playgroud)
到目前为止,它已经开始研究css-mode,perl-mode,sh-mode(bash)和lisp-mode.但由于某种原因它不会加载php模式,即使我可以手动加载它.
这是我的php模式设置:
(defun php-overload-keys ()
(let ((map php-mode-map))
(define-key map "\t" 'dumb-indent-relative)
(define-key map "\177" 'backward-delete-char)
(define-key map "," nil)
(define-key map ";" nil)
(define-key map ":" nil)
(define-key map "*" nil)
(define-key map "{" nil)
(define-key map "}" nil)
(define-key map "(" nil)
(define-key map ")" nil)
(define-key map "/" nil)
(use-local-map map)))
(add-hook 'php-mode-hook 'php-overload-keys)
(add-hook 'php-mode-hook 'hs-minor-mode)
Run Code Online (Sandbox Code Playgroud)
我做错了吗?我尝试在函数中包装hs-minor-mode但仍然无法加载.但是,我的重载键也可以.这是怎么回事?