Comment puis-je personnaliser la commande de compilation?

8

Dans l'un de mes projets, je dois exécuter make package installlors de la construction au lieu de make. Il se souvient de la dernière commande de compilation que j'ai utilisée, mais se réinitialise à make -kchaque démarrage d'emacs. Comment puis-je personnaliser M-x compilepar défaut make package install?

Connor
la source
Quelle est la valeur de compilation-read-command? Si cette variable est définie sur une nilvaleur non , M-x compiledevrait vous inviter à utiliser la commande de compilation. Alternativement, vous pouvez le faire C-u M-x compile; dans ce cas, la commande vous sera demandée quelle que soit la valeur de compilation-read-command.
itsjeyd
1
Il est réglé sur t. Cela me permet de modifier la commande avant de l'exécuter, mais je voudrais changer ce qu'elle est par défaut
Connor
Je vois. Publié le commentaire ci-dessus avant de vérifier la modification que vous avez apportée à votre question;)
itsjeyd
Une bonne question. D'après le manuel, j'ai eu l'impression que l'on peut ajouter "compile: ..." ou "compile-commande: ..." dans la section "Variables locales:" à la fin d'un fichier, mais mon nouvel Emacs ne le fait pas ' t semble leur prêter attention ... :(
imz - Ivan Zakharyaschev

Réponses:

7

Vous pouvez personnaliser la variable compile-commandpour modifier la commande de compilation utilisée par défaut:

(setq compile-command "make package install")
itsjeyd
la source
Notez que la première fois que vous exécutez une commande de compilation qui ne l'est pas make package install , cette nouvelle commande deviendra votre nouvelle valeur par défaut.
nispio
2

Si vous souhaitez personnaliser la variable par projet plutôt que globalement. Vous pouvez utiliser des variables d'annuaire . Ceux-ci vous permettent d'appliquer certaines personnalisations uniquement pour les fichiers dans certains répertoires et ses sous-répertoires.

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

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

La syntaxe est expliquée en détail dans le lien vers le manuel emacs ci-dessus. Comme indiqué par @hatschipuh, vous pouvez utiliser les commandes add-dir-local-variableet delete-dir-local-variablepour ajouter et supprimer facilement des valeurs locales dir.

Iqbal Ansari
la source
Pour plus de commodité, il existe les commandes add-dir-local-variableet delete-dir-local-variable.
clemera
@hatschipuh, une bonne suggestion a mis à jour la réponse pour mentionner ces commandes
Iqbal Ansari