2009-05-22 20 views
29

ile uyumlu php modu (ve diğer cc modu türetilmiş modlar) yapmak Emacs 23 ve php-mode.el 1.5.0 kullanıyorum. Ben benim .emacs bu varsa: Emacs başladıktan sonra ben (require 'php-mode) değerlendirmek durumundaEmacs 23

Warning (initialization): An error occurred while loading `/Users/kdj/.emacs':

error: `c-lang-defconst' must be used in a file

To ensure normal operation, you should investigate and remove the cause of the error in your initialization file. Start Emacs with the `--debug-init' option to view a complete error backtrace.

, ben herhangi bir hata iletileri alamadım:

(require 'php-mode) 

Emacs başladığında bu hata mesajı alıyorum.

Bu sorunun Emacs 23'e özgü olduğunu belirten bir blog entry buldum (bu, Emacs 22.x ile ilgili bir hata yok), ancak herhangi bir çözüm sunmuyor.

Bunun önemli olup olmadığını bilmiyorum, ancak Mac   OS   X kullanıyorum ve ./configure --with-ns kullanarak geçerli CVS kaynaklarından Emacs'i oluşturdum.

Burada neler oluyor ve/veya onu nasıl düzeltebilirim?

+0

Emacs Starter Kit (ayrıca v1.5.0) ile birlikte gönderilen Emacs 23 ve 'php-mode' kullanıyorum. İşe yarıyor. .emacsinizde 'php-mode 'işlevini etkileyen başka bazı modlar olabilir. –

+0

.emac'leri sadece "(add-to-list 'load-path" ~/elisp ") (' php-mode 'gerektirir) olarak değiştirdim ve sorun devam ediyor. –

+0

Nokta noktalarınızı çevrimiçi bir yere koyabilir misiniz? –

cevap

51

Csharp-modunu çalışır duruma getirmeye çalışırken aynı soruna rastladım. Csharp-mod için gerçek Emacs Lisp dosyası içine kazma da nihayet çözüm bulundu:

;; 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. 

Yani, .emacs koymak için hızlı ve kirli düzeltme uzantısına oto yüküne ve koymak (require 'php-mode) veya (load "php-mode") Orada. Daha fazla ado,

Umarım bu yardımcı olur! Şimdi sadece PHP/HTML mod değiştirme işlerini çalıştırmam gerekiyor. Bana şans Dile.

+0

Awesome! Bu mükemmel çalışıyor. –

+0

benim için çalışıyor – Matt

+0

Partiye geç kalmış, ancak bunun için çok teşekkürler. Linux'ta bir sorunum yok, fakat Windows'da, aynı hatayı alıyordum, çünkü nxhtml kendi başına çok fazla şeyi otomatik olarak yüklüyor. Cc - *. Elc dosyalarımı sildim ve hatalar gitti. – monksp