Wie lade ich automatisch einen Modus für einen bestimmten Satz von Dateierweiterungen?

16

Ich möchte die yaml-modefür alle Dateien namens *.ymloder laden *.yaml.

b4hand
quelle
7
Lesen Sie den Elisp Handbuch, KnotenAuto Major Mode , und Sie werden in der Lage , Ihre eigene Frage zu beantworten: auto-mode-alist. Oh, ich sehe, dass du das getan hast, 10 Sekunden nachdem du die Frage gestellt hast. Vielleicht ist es keine gute Idee, Fragen und Antworten aus dem Handbuch auf diese Weise zu pumpen. Aber ich denke, es ist eine Frage, die den Leuten einfallen wird, und die Antwort wird ihnen helfen. Schade, dass sie es auf diese Weise lernen, anstatt es von Emacs selbst zu lernen. Besser, den Leuten beizubringen, wie man solche Antworten findet, IMO.
Drew
1
Fühlen Sie sich frei, dies als Antwort hinzuzufügen. Ich habe diese Frage gestellt, weil es eine war, die ich in der Vergangenheit gelöst habe, und sie war einer vorgeschlagenen Frage in der Liste area51 sehr ähnlich.
b4hand
1
Kein Problem. Tut mir leid, wenn ich negativ klang. Wie gesagt, die Frage und die Antwort werden den Menschen helfen.
Drew
Für das, was es wert ist, ist dies einer Frage sehr ähnlich, die während der Angebotsphase auf area51 gestellt wurde: area51.stackexchange.com/proposals/76571/emacs/76640#76640
b4hand
Es ist nichts Falsches daran, eine solche Frage zu stellen. Mein Kommentar war ursprünglich nur der erste Satz. IMO, es ist gut für die Leute, sich daran zu gewöhnen, zuerst Emacs selbst und dann SE zu fragen. Emacs ist etwas Besonderes, wenn es darum geht, Benutzern auf diese Weise zu helfen - es ist kein durchschnittliches SE-Thema. Aber Benutzer brauchen oft Hilfe, um zu lernen, wie man Emacs fragt .
Drew

Antworten:

14

Fügen Sie diese Zeilen zu Ihrer .emacsDatei hinzu:

(require 'yaml-mode)
(add-to-list 'auto-mode-alist '("\\.ya?ml\\'" . yaml-mode))

Das auto-mode-alistist eine Variable , die beraten Emacs , wenn eine neue Datei geöffnet wird. Sie können Zuordnungen zwischen Dateinamensmustern und Hauptmodi hinzufügen.

Weitere Informationen darüber, wie Emacs festlegt, welche Modi für einen bestimmten Puffer geladen werden sollen, finden Sie im Emacs-Handbuch .

b4hand
quelle
4
"\\. ya? ml \\ '" ist die bevorzugte Form, da es wirklich das Ende der Zeichenkette ist, kein Zeilenumbruch. Es macht tatsächlich einen Unterschied für Dateien, deren Name eine neue Zeile enthält ... 'foo.yaml \ nc' sollte wirklich eine C-Datei sein, keine Yaml-Datei (ja, es ist ziemlich unwahrscheinlich, dass dies jemals passieren wird, aber immer noch)
Sigma
2
Es wäre hilfreich, wenn Sie auch auf das Emacs-Handbuch verweisen würden, in dem diese Informationen enthalten sind.
Trevoke
Das (require 'yaml-mode)ist auch unnötig, wenn der Modus automatisch geladen wird (was fast immer der Fall ist). Die Bibliothek wird automatisch geladen, wenn Sie eine Datei mit der richtigen Dateierweiterung öffnen.
Shosti
Da yaml-modeals Paket installiert wurde, brauchte ich auf jeden Fall die (require 'yaml-mode)Leitung; sonst würde ich die folgende Fehlermeldung angezeigt: File mode specification error: (void-function yaml-mode).
b4hand