29

Emacs 23 とphp-mode.el 1.5.0 を使用しています。これが私の中にあるとき.emacs

(require 'php-mode)

Emacs の起動時に次のエラー メッセージが表示されます。

警告 (初期化): `/Users/kdj/.emacs' の読み込み中にエラーが発生しました:

エラー: `c-lang-defconst' をファイルで使用する必要があります

正常な動作を確保するには、初期化ファイルでエラーの原因を調査して削除する必要があります。完全なエラー バックトレースを表示するには、「--debug-init」オプションを指定して Emacs を起動します。

Emacs の起動後に評価(require 'php-mode)すると、エラー メッセージは表示されません。

この問題が Emacs 23 に固有のものである (つまり、Emacs 22.x ではエラーが発生しない) ことを示すブログ エントリを見つけましたが、解決策はありません。

これが問題かどうかはわかりませんが、私は Mac OS X を使用しており、現在の CVS ソースから./configure --with-ns.

ここで何が起こっているのですか、および/またはそれを修正するにはどうすればよいですか?

4

2 に答える 2

51

csharp-modeを起動して実行しようとしたときに、同じ問題が発生しました。csharp-modeの実際のEmacsLispファイルを掘り下げて、ようやく解決策を見つけました。

;;   This code doesn't seem to work when you compile it, then
;;   load/require in the Emacs file. You will get an error (error
;;   "`c-lang-defconst' must be used in a file") which happens because
;;   cc-mode doesn't think it is in a buffer while loading directly
;;   from the init. However, if you call it based on a file extension,
;;   it works properly. Interestingly enough, this doesn't happen if
;;   you don't byte-compile cc-mode.

したがって、.emacsに入れるための迅速で汚い修正は、拡張機能に自動ロードすることであり、そこに入れたり入れ(require 'php-mode)たり(load "php-mode")することではありません。難しい話は抜きにして、

(autoload 'php-mode "php-mode" "Major mode for editing php code." t)
(add-to-list 'auto-mode-alist '("\\.php$" . php-mode))
(add-to-list 'auto-mode-alist '("\\.inc$" . php-mode))

これがお役に立てば幸いです。ここで、PHP/HTMLモードの切り替えを機能させる必要があります。幸運を祈ります。

于 2009-05-27T20:02:04.837 に答える
1

http://mewde.googlecode.com/files/php-mode-new.elで問題なく動作します。

于 2010-03-16T19:49:23.650 に答える