جعل وضع PHP (وغيرها من الأوضاع المشتقة من وضع CC) متوافق مع EMACS 23

StackOverflow https://stackoverflow.com/questions/898063

  •  23-08-2019
  •  | 
  •  

سؤال

أنا أستخدم emacs 23 و php-mode.el. 1.5.0. عندما يكون لدي هذا في بلدي .emacs:

(require 'php-mode)

أحصل على رسالة الخطأ هذه عند بدء تشغيل EMACS:

تحذير (التهيئة): حدث خطأ أثناء تحميل `/users/kdj/.emacs ':

خطأ: يجب استخدام "C-Lang-Defconst" في ملف

لضمان التشغيل العادي، يجب عليك التحقيق وإزالة سبب الخطأ في ملف التهيئة الخاص بك. قم ببدء تشغيل EMACS مع خيار "`debug-init" لعرض خطأ في الخطأ الكامل.

إذا قمت بتقييم (require 'php-mode) بعد أن تبدأ EMACS، لا أحصل على أي رسائل خطأ.

لقد وجدت ال مدونة المدونة مما يدل على أن هذه المشكلة خاصة ب EMACS 23 (أي، لا يوجد خطأ في EMACS 22.x)، لكنها لا تعطي أي حلول.

لا أعرف إذا كانت هذه الأمور، لكنني أستخدم Mac OS X، وقد بنيت emacs من مصادر CVS الحالية، باستخدام ./configure --with-ns.

ما الذي يحدث هنا و / أو كيف يمكنني إصلاحه؟

هل كانت مفيدة؟

المحلول

ركضت في نفس المشكلة عند محاولة الحصول على وضع csharp وتشغيلها. أخيرا، وجدت الحل عند الحفر في ملف emacs Lisp الفعلي لوضع CSHARP:

;;   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. تمنى لي الحظ.

نصائح أخرى

انها تعمل بشكل جيد مع http://mewde.googlecode.com/files/php-mode-new.el..

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top