Come posso personalizzare il comando di compilazione?


8

In uno dei miei progetti ho bisogno di eseguire make package installdurante la costruzione anziché make. Ricorda l'ultimo comando di compilazione che ho usato, ma si reimposta make -kogni volta che si avvia emacs. Come posso personalizzare M-x compilel'impostazione predefinita make package install?


Qual è il valore di compilation-read-command? Se questa variabile è impostata su un nilvalore non valido, è M-x compilenecessario richiedere l'utilizzo del comando di compilazione. In alternativa, puoi farlo C-u M-x compile; in questo caso, verrà richiesto il comando indipendentemente dal valore di compilation-read-command.
itsjeyd

1
È impostato su t. Mi permette di modificare il comando prima di eseguire, ma vorrei cambiare ciò che è predefinito
Connor

Vedo. Hai pubblicato il commento sopra prima di controllare la modifica che hai apportato alla tua domanda;)
itsjeyd

Una buona domanda Dal manuale, ho avuto l'impressione che si possa aggiungere "compile: ..." o "comando di compilazione: ..." nella sezione "Variabili locali:" alla fine di un file, ma il mio nuovo Emacs non lo fa ' non sembra prestare loro attenzione ... :(
imz - Ivan Zakharyaschev,

Risposte:


7

È possibile personalizzare la variabile compile-commandper modificare il comando di compilazione utilizzato per impostazione predefinita:

(setq compile-command "make package install")

Si noti che la prima volta che si esegue un comando di compilazione che non lo è make package install , quel nuovo comando diventerà il nuovo predefinito.
nispio,

2

Se si desidera personalizzare la variabile per progetto anziché a livello globale. È possibile utilizzare le variabili di directory . Questi consentono di applicare determinate personalizzazioni solo per i file in determinate directory e nelle sue sottodirectory.

Quindi, per esempio, vuoi usare il make package installcomando come compilare solo nel progetto A, dovrai creare un file chiamato .dir-locals.elnella directory principale del progetto e aggiungere qualcosa come il seguente

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

La sintassi è spiegata in dettaglio nel link al manuale emacs sopra. Come sottolineato da @hatschipuh, è possibile utilizzare i comandi add-dir-local-variablee delete-dir-local-variableaggiungere ed eliminare facilmente i valori locali dir.


Per comodità ci sono i comandi add-dir-local-variablee delete-dir-local-variable.
Clemera,

@hatschipuh, un buon suggerimento ha aggiornato la risposta per menzionare questi comandi
Iqbal Ansari
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.