Frage

Kann jemand geben mir ein Hallo Welt Beispiel für einen großen Modus in Emacs? Ich denke, es ist ein Anfänger Frage, noch wirklich Ich mag einen großen Modus zu schreiben, sowohl Emacs und elisp zu lernen, in der Lage sein, die individuell gestaltet werden in vollen Zügen zu nutzen.

Was ich bisher getan haben (und arbeitet):

  • eine Beispieldatei-mode.el schrieb und es in einem Lisp dir setzen
  • genannt in .emacs (require 'sample-mode)
  • schrieb einige Defuns darin, und, sofern sie am Ende (provide 'sample-mode)

Aber immer noch scheint es nicht zu sein, aktiviert , kann ich es nicht nennen mit M-Probe-Modus.

So, wie das zu tun? Und kann mich jemand schaffen, mit einer sehr einfachen Hallo Welt wie Probe zu arbeiten?

War es hilfreich?

Lösung

Ok, nachdem einige mehr googeln Ich bin mindestens einen Schritt furhter:

(define-derived-mode sample-mode ...) 

, da die Bereitstellung nicht definiert, um den Modus, wie ich zuerst dachte .. Dies habe ich gefunden auf:

http://xahlee.org/emacs/elisp_syntax_coloring.html

Eine sehr sehr schöne Seite für Emacs-Liebhaber.

Mit Hilfe der, dass: Ich habe gemacht eine Hello World Beispiel mich jetzt: Es ist ein (so klein wie möglich) Csharp-Modus. Ich habe verwendet Euler1 als Beispiel statt Hello World. Die Dateien, die Sie wissen müssen über sind:

  • die Datei der Modus auf Euler1.cs angewendet werden soll
  • die .emacs
  • und natürlich die Mode selbst

Da ein Bild wert ist, zumindest ein paar Worte: alle Dateien auf 1 Bildschirm:

alt text

Aber da dieses schöne Bild scheint die Hälfte der Zeit zu verschwinden (jemand eine Ahnung In neuem Tab öffnen bringt es immer auf und die URL ist ok?) Ein paar Worte zu :-):

  1. Der Modus: cs-mode.el

    (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. Die Emacs, das macht die CS- im richtigen Modus geöffnete Dateien:

;; cs
(require 'cs-mode)
(add-to-list 'auto-mode-alist '("\\.cs\\'" . cs-mode))

Und das ist alles: die cs-code selbst nutzlos ist sie, weil es nicht die Wirkung der Färbung der Schlüssel-Worte zeigen. Um zu sehen, dass das Bild sehen, oder öffnen Sie das Bild in einem anderen Tab / Fenster.

Cheers, ph

Andere Tipps

Es gibt mehrere Beispiele rund um die Web wie diese . Ich kann Ihnen auch mehr Emacs Buch empfehlen:

  • Learning GNU Emacs (die beste imho)
  • Schreiben GNU Emacs Extensions
  • Die offizielle GNU Emacs Lisp Referenz / manuell

Nun, lassen Sie uns mit beginnen diese Antwort , die define-generic-mode .

Flesh es mit einigen Kommentarzeichen aus wie: /* */, einige Stichworte:. hello hi usw., wiederverwenden, das Gesicht von der ursprünglichen Antwort, eine Dateierweiterung .hello und ein Funktionsaufruf weitere Anpassung zu tun

Es gibt die zusätzliche Leitung zum Laufen zu bringen selbstladende, aber Sie müssen erzeugen die loaddefs.el Datei. Das ist weiter fortgeschritten als Hallo Welt.

Und am Ende mit auf den Punkt:

(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."))

Das Elisp Handbuch stellt Hauptmodi ziemlich gut, und es enthält einen Knoten, die „Hallo-Welt“ Beispiele . Zumindest, dass die Absicht ist, glaube ich.

Diese Beispiele könnten nicht decken alles, was Sie sich wünschen. In diesem Fall sollten Sie, was Sie Ihr Interesse an der Meinung ist, dass fehlende würde mehr Benutzer helfen. Um dies zu tun, verwenden Sie M-x report-emacs-bug (dh für Verbesserungsvorschläge auch).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top