fichier init spécifique au projet

10

J'ai quelques personnalisations pour emacs que j'aimerais utiliser pour un seul projet, mais n'affecte pas emacs globalement. Existe-t-il un moyen de permettre à emacs de charger un fichier d'initialisation spécifique lorsqu'il est lancé à partir d'un certain répertoire ou de charger automatiquement tous les fichiers d'initialisation dans le répertoire à partir duquel il est lancé?

Connor
la source

Réponses:

17

Vous voudrez peut-être jeter un œil aux variables du répertoire . Fondamentalement, vous devrez créer un .dir-locals.elfichier dans la racine de votre projet avec tous les paramètres spécifiques au projet. Désormais, chaque fois que vous ouvrez un fichier dans le répertoire ou l'un de ses sous-répertoires, emacs applique les paramètres du .dir-locals.elfichier.

Par exemple, supposons que vous souhaitiez utiliser la make package installcommande as compile uniquement dans le projet A, vous devrez créer un fichier nommé .dir-locals.el dans le répertoire racine du projet et ajouter quelque chose comme le suivant

((nil . ((compile-command . "make package install"))))

Désormais, chaque fois que vous exécutez la compilecommande à partir de n'importe quel fichier du répertoire A, la valeur par défaut compile-commandsera celle spécifiée ci-dessus, mais les compile commandfichiers situés en dehors du répertoire A resteront intacts.

Iqbal Ansari
la source
2

Une alternative moins performante.dir-locals.el est la norme EditorConfig , qui a un paquet emacs . Il ne prend pas en charge autant d'options, mais il permet à une équipe de normaliser certains paramètres et de les utiliser sur différents éditeurs.

Il se comporte à peu près de la même manière, avec un .editorconfigfichier spécifique au projet au niveau supérieur.

Lee H
la source