¿Cómo puedo personalizar el comando de compilación?

8

En uno de mis proyectos necesito correr make package installcuando construyo en lugar de hacerlo make. Recuerda el último comando de compilación que utilicé, pero se restablece make -kcada vez que se inicia emacs. ¿Cómo puedo personalizar el M-x compilevalor predeterminado make package install?

Connor
fuente
¿Cuál es el valor de compilation-read-command? Si esta variable se establece en un nilvalor distinto , M-x compiledebe solicitarle que utilice el comando de compilación. Alternativamente, puedes hacer C-u M-x compile; en este caso, se le solicitará el comando independientemente del valor de compilation-read-command.
itsjeyd
1
Se establece en t. Sí me permite editar el comando antes de ejecutarlo, pero me gustaría cambiar el valor predeterminado
Connor
Veo. Publique el comentario anterior antes de verificar la edición que hizo a su pregunta;)
itsjeyd
Una buena pregunta Desde el manual, tuve la impresión de que se puede agregar "compilar: ..." o "compilar-comando: ..." en la sección "Variables locales:" al final de un archivo, pero mi nuevo Emacs no t parece prestarles atención ... :(
imz - Ivan Zakharyaschev

Respuestas:

7

Puede personalizar la variable compile-commandpara cambiar el comando de compilación que se usa por defecto:

(setq compile-command "make package install")
itsjeyd
fuente
Tenga en cuenta que la primera vez que ejecuta un comando de compilación que no lo es make package install , ese nuevo comando se convertirá en su nuevo valor predeterminado.
nispio
2

Si desea personalizar la variable por proyecto en lugar de globalmente. Puede usar las variables de directorio . Estos le permiten aplicar ciertas personalizaciones solo para archivos en cierto directorio y sus subdirectorios.

Entonces, por ejemplo, si desea utilizar el make package installcomando como compilación solo en el proyecto A, deberá crear un archivo denominado .dir-locals.elen el directorio raíz del proyecto y agregar algo como lo siguiente

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

La sintaxis se explica en detalle en el enlace al manual de emacs anterior. Como señaló @hatschipuh, puede usar los comandos add-dir-local-variabley delete-dir-local-variableagregar y eliminar fácilmente valores locales de directorio.

Iqbal Ansari
fuente
Por conveniencia existen los comandos add-dir-local-variabley delete-dir-local-variable.
clemera
@hatschipuh, una buena sugerencia actualizó la respuesta para mencionar estos comandos
Iqbal Ansari