Como posso personalizar o comando de compilação?

8

Em um dos meus projetos, preciso executar make package installao criar, em vez de make. Ele se lembra do último comando de compilação que eu usei, mas redefine make -ksempre que o emacs é iniciado. Como posso personalizar o M-x compilepadrão make package install?

Connor
fonte
Qual é o valor de compilation-read-command? Se essa variável estiver definida como um nilvalor não , M-x compilevocê deverá solicitar o comando de compilação a ser usado. Como alternativa, você pode fazer C-u M-x compile; nesse caso, o comando será solicitado independentemente do valor de compilation-read-command.
itsjeyd
1
Está definido como t. Ele permite que eu edite o comando antes de executar, mas eu gostaria de alterar o que é padrão:
Connor
Eu vejo. Poste o comentário acima antes de verificar a edição que você fez à sua pergunta;)
itsjeyd 5/05
Uma boa pergunta No manual, tive a impressão de que se pode adicionar "compile: ..." ou "compile-command: ..." na seção "Variáveis ​​locais:" no final de um arquivo, mas meu novo Emacs não ' parece prestar atenção neles ... :(
imz - Ivan Zakharyaschev 23/01

Respostas:

7

Você pode personalizar a variável compile-commandpara alterar o comando de compilação usado por padrão:

(setq compile-command "make package install")
itsjeyd
fonte
Observe que a primeira vez que você executa um comando de compilação que não é make package install , esse novo comando se tornará seu novo padrão.
Nispio 12/10
2

Se você deseja personalizar a variável por projeto em vez de globalmente. Você pode usar variáveis ​​de diretório . Isso permite aplicar determinadas personalizações apenas para arquivos em determinado diretório e seus subdiretórios.

Portanto, por exemplo, você deseja usar o make package installcomando as compile apenas no projeto A, precisará criar um arquivo nomeado .dir-locals.elno diretório raiz do projeto e adicionar algo como o seguinte

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

A sintaxe é explicada em detalhes no link para o manual do emacs acima. Conforme apontado por @hatschipuh, você pode usar os comandos add-dir-local-variablee delete-dir-local-variableadicionar e excluir facilmente valores locais de dir.

Iqbal Ansari
fonte
Por conveniência, existem os comandos add-dir-local-variablee delete-dir-local-variable.
Clemera
@hatschipuh, boa sugestão atualizei a resposta de mencionar estes comandos
Iqbal Ansari