'مرحبا العالم' مثلا رئيسيا في وضع Emacs ؟
-
21-08-2019 - |
سؤال
أي شخص يمكن أن توفر لي مع عالم مرحبا سبيل المثال كبير وضع في emacs ؟ أعتقد أنه مبتدئا السؤال: ما زلت أحب أن أكتب الرئيسية الوضعية ، وذلك لمعرفة emacs و elisp ، كما أن تكون قادرة على استخدام التخصيص على أكمل وجه.
ما قمت به حتى الآن (وهو العامل) :
- كتب الملف عينة واسطة.ش ووضعها في اللثغة dir
- ودعا في .emacs
(require 'sample-mode)
- كتب بعض defuns في ذلك ، شريطة أنه في نهاية المطاف
(provide 'sample-mode)
ولكن لا يزال لا يبدو أن يكون تنشيط, أنا لا يمكن الاتصال مع M-العينة-الوضعية.
فكيف نفعل ذلك ؟ و أي شخص يمكن أن توفر لي مع بسيط جدا جدا مرحبا العالم مثل العامل العينة ؟
المحلول
حسنا, بعد بعض غوغلينغ أنا خطوة واحدة على الأقل furhter :
(define-derived-mode sample-mode ...)
منذ تقديم أليس تحديد الوضع كما ظننت أولا..لقد وجدت هذا على :
http://xahlee.org/emacs/elisp_syntax_coloring.html
جدا جدا جميل الموقع emacs-عشاق.
مع مساعدة من هذا :لقد جعلت من HelloWorld سبيل المثال نفسي الآن :إنه (صغيرة قدر الإمكان) Csharp الوضعية.لقد استخدمت Euler1 على سبيل المثال بدلا من HelloWorld.الملفات تحتاج إلى معرفته حول :
- الملف وضع سيتم تطبيقها على
Euler1.cs
- على .emacs
- وبالطبع وضع نفسها
منذ الموافقة المسبقة عن علم يستحق على الأقل مجموعة من الكلمات :جميع الملفات في 1 الشاشة :
ولكن منذ هذا لطيف الموافقة المسبقة عن علم يبدو أن تختفي نصف الوقت (أي فكرة ؟ فتح في علامة تبويب جديدة دائما يجلب على عنوان url هو موافق) بعض الكلمات أيضا :-) :
الوضع :cs-الوضعية.ش
(setq myKeywords '(("WriteLine" . font-lock-function-name-face) ("public\\|static\\|void\\|int\\|for\\|if\\|class" . font-lock-constant-face))) (define-derived-mode cs-mode fundamental-mode (setq font-lock-defaults '(myKeywords))) (provide 'cs-mode)
على .emacs, أن يجعل .cs الملفات المفتوحة في الوضع الصحيح :
;; cs (require 'cs-mode) (add-to-list 'auto-mode-alist '("\\.cs\\'" . cs-mode))
و هذا كل شيء :على cs-code
نفسها لا جدوى لها ، لأنه لن يظهر تأثير تلوين الكلمات الرئيسية.أن نرى أن أرى الموافقة المسبقة عن علم ، أو فتح الصورة في علامة تبويب أخرى/نافذة.
هتافات, ph
نصائح أخرى
وهناك أمثلة عدة في جميع أنحاء شبكة الإنترنت مثل هذا.يمكنني أيضا ننصح عدة Emacs الكتاب:
- التعلم GNU Emacs (أفضل imho)
- كتابة GNU Emacs امتداد
- الرسمية GNU Emacs يسب المراجع/دليل
حسنا, دعونا نبدأ مع هذا الجواب, الذي يستخدم define-generic-mode
.
اللحم مع بعض التعليق شخصيات مثل: /* */
, بعض الكلمات: hello
hi
الخ ، إعادة استخدام الوجه من الرد الأصلي ، امتداد الملف .hello
, و استدعاء دالة للقيام بالمزيد من التخصيص.
هناك خط إضافي للحصول على autoloading العامل ، ولكن يجب أن توليد loaddefs.ش الملف.هذا هو أكثر تقدما من مرحبا العالم.
و كنت في نهاية المطاف مع هذا:
(make-face 'my-date-face)
(set-face-attribute 'my-date-face nil :underline t)
(set-face-attribute 'my-date-face nil :family "times")
(set-face-attribute 'my-date-face nil :slant 'normal)
(set-face-attribute 'my-date-face nil :height '340)
;;;###autoload
(define-generic-mode hello-world
'(("/*" . "*/")) ; comment characters
'("hello" "hi" "howdy" "greetings" "hola") ; keywords
'(("\\([0-9]+/[0-9]+/[0-9]+\\)"
(1 'my-date-face))) ; font lock
'("\\.hello$") ; auto-mode-alist
'(hello-world-special-setup) ; function-list
"An example major mode.
We have comments, keywords, a special face for dates, and recognize .hello files.")
(defun hello-world-special-setup ()
"Some custom setup stuff done here by mode writer."
(message "You've just enabled the most amazing mode ever."))
على Elisp دليل يقدم طرق رئيسية بشكل جيد ، وتشمل عقدة أن يعرض "مرحبا العالم" أمثلة.على الأقل هذا هو القصد ، على ما أعتقد.
هذه الأمثلة قد لا تغطي كل ما تبحث عنه.في هذه الحالة ينظر في أن يطلب ما هو مفقود من شأنها أن تساعد المستخدمين أكثر.للقيام بذلك, استخدام M-x report-emacs-bug
(وهذا هو تعزيز الطلبات أيضا).