Comment charger automatiquement un mode pour un ensemble spécifique d'extensions de fichiers?

18

Je voudrais charger le yaml-modepour tous les fichiers nommés *.ymlou *.yaml.

b4hand
la source
7
Lisez le manuel Elisp, noeudAuto Major Mode , et vous serez en mesure de répondre à votre question: auto-mode-alist. Oh, je vois que vous avez fait ça, 10 secondes après avoir posté la question. Ce n'est peut-être pas une bonne idée de pomper les questions et réponses à partir du manuel de cette façon. Mais je suppose que c'est une question qui se posera aux gens, et la réponse les aidera. Dommage qu'ils l'apprennent de cette façon, au lieu de l'apprendre d'Emacs lui-même. Mieux vaut enseigner aux gens comment trouver de telles réponses, OMI.
attiré
1
N'hésitez pas à ajouter ceci comme réponse. J'ai posé cette question parce que c'était une que j'ai résolue dans le passé, et elle était très similaire à une question proposée dans la liste area51.
b4hand
1
Aucun problème. Désolé si j'ai eu l'air négatif. Comme je l' ai dit, la question et la réponse va aider les gens.
Drew
Pour ce que cela vaut, cela ressemble beaucoup à une question qui a été posée lors de la phase de proposition sur area51: area51.stackexchange.com/proposals/76571/emacs/76640#76640
b4hand
Il n'y a rien de mal à poser une telle question. Mon commentaire n'était à l'origine que la première phrase. OMI, il est bon que les gens prennent l'habitude de demander à Emacs lui-même en premier et de demander à SE en second. Emacs est un peu spécial pour aider les utilisateurs de cette façon - ce n'est pas votre sujet SE moyen. Mais les utilisateurs ont souvent besoin d'aide pour apprendre à poser des questions à Emacs.
attiré

Réponses:

16

Ajoutez ces lignes à votre .emacsfichier:

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

La auto-mode-alistest une variable qu'emacs consulte chaque fois qu'un nouveau fichier est ouvert. Vous pouvez ajouter des mappages entre les modèles de nom de fichier et les modes principaux.

Vous pouvez en savoir plus sur la façon dont Emacs détermine les modes à charger pour un tampon donné dans le manuel Emacs .

b4hand
la source
4
"\\. ya? ml \\ '" est la forme préférée, car c'est vraiment la fin de la chaîne, pas une nouvelle ligne. Cela fait en fait une différence pour les fichiers qui ont une nouvelle ligne dans leur nom ... 'foo.yaml \ nc' devrait vraiment être un fichier C, pas un fichier yaml (oui, il est peu probable que cela se produise, mais quand même)
Sigma
2
Il serait utile que vous vous connectiez également au manuel emacs où ces informations sont fournies.
Trevoke
De plus, cela (require 'yaml-mode)n'est pas nécessaire si le mode est chargé automatiquement (ce qui est presque toujours le cas). La bibliothèque sera automatiquement chargée lorsque vous ouvrirez un fichier avec l'extension de fichier correcte.
shosti
Depuis qu'il a yaml-modeété installé sous forme de package, j'avais définitivement besoin de la (require 'yaml-mode)ligne; sinon, je l'erreur suivante: File mode specification error: (void-function yaml-mode).
b4hand