سؤال

أي شخص يمكن أن توفر لي مع عالم مرحبا سبيل المثال كبير وضع في 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 الشاشة :

alt text

ولكن منذ هذا لطيف الموافقة المسبقة عن علم يبدو أن تختفي نصف الوقت (أي فكرة ؟ فتح في علامة تبويب جديدة دائما يجلب على عنوان url هو موافق) بعض الكلمات أيضا :-) :

  1. الوضع :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)
    
  2. على .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 (وهذا هو تعزيز الطلبات أيضا).

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