Come carico automaticamente una modalità per un set specifico di estensioni di file?


17

Vorrei caricare il yaml-modefile per qualsiasi file denominato *.ymlo *.yaml.


7
Leggere l'Elisp manuale, il nodoAuto Major Mode , e sarete in grado di rispondere alla tua domanda: auto-mode-alist. Oh, vedo che l'hai fatto, 10 secondi dopo aver pubblicato la domanda. Forse non è una buona idea pompare domande e risposte dal manuale in questo modo. Ma suppongo che sia una domanda che verrà posta alle persone e la risposta le aiuterà. Peccato che lo impareranno in questo modo, invece di impararlo dallo stesso Emacs. Meglio insegnare alle persone come trovare tali risposte, IMO.
— Disegnò il

1
Sentiti libero di aggiungere questo come risposta. Ho posto questa domanda perché era una che ho risolto in passato ed era molto simile a una domanda proposta nell'elenco area51.
— b4hand,

1
Nessun problema. Scusa se ho suonato in modo negativo. Come ho detto, la domanda e la risposta sarà aiutare le persone.
— Drew

Per quello che vale, è molto simile a una domanda che è stata posta durante la fase di proposta su area51
— b4hand,

Non c'è niente di sbagliato nel porre una domanda del genere. Il mio commento era originariamente solo la prima frase. IMO, è bene che le persone abbiano l'abitudine di chiedere prima a Emacs stesso e di chiedere a SE in secondo luogo. Emacs è un po 'speciale nell'aiutare gli utenti in questo modo - non è il tuo argomento SE medio. Ma gli utenti hanno spesso bisogno di aiuto per imparare a chiedere a Emacs.
— Disegnò il

Risposte:


15

Aggiungi queste righe al tuo .emacsfile:

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

Il auto-mode-alistè una variabile che emacs consulta ogni volta che viene aperto un nuovo file. È possibile aggiungere mappature tra modelli di file e modalità principali.

Puoi scoprire di più su come Emacs determina quali modalità caricare per un dato buffer dal manuale di Emacs .


4
"\\. ya? ml \\ '" è la forma preferita, dal momento che è davvero la fine della stringa, non una nuova riga. In realtà fa la differenza per i file che hanno una nuova riga nel loro nome ... 'foo.yaml \ nc' dovrebbe davvero essere un file C, non un file yaml (sì, è abbastanza improbabile che ciò accada mai, ma comunque)
— Sigma,

2
Sarebbe utile se ti collegassi anche al manuale di emacs in cui vengono fornite queste informazioni.
— Trevoke,

Inoltre (require 'yaml-mode)non è necessario se la modalità è caricata automaticamente (che è quasi sempre il caso). La libreria verrà caricata automaticamente all'apertura di un file con l'estensione corretta.
— shosti,

Dato che è yaml-modestato installato come pacchetto, avevo sicuramente bisogno della (require 'yaml-mode)linea; in caso contrario, vorrei vedere il seguente errore: File mode specification error: (void-function yaml-mode).
— b4hand,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.