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.