Actualmente, mi comando de compilación es el siguiente:
cd ~/somedir && ./somescript.sh
Esto evita que emacs encuentre el archivo en el que ocurre un error (y lo abre).
Por supuesto, puedo ejecutarlo M-x cd
manualmente, pero ¿hay alguna manera de decirle al búfer que cambie su directorio actual mediante programación?
compilation-mode
Thomas Moulard
fuente
fuente
Respuestas:
Finalmente, dejé de confiar en el directorio actual, ya que era demasiado intrusivo y otras cosas como ido donde terminaba siendo afectado ...
En cambio, uso agregado mi directorio de compilación a
compilation-search-path
Encontrado en esta pregunta: ¿Cómo ajustar la ruta que el compilación-error de compilación de Emacs obtiene del búfer de compilación?
La pregunta también explica que el comparador de directorios puede cambiar el directorio automáticamente si se emiten algunas cadenas particulares:
Esto también es personalizable aparentemente.
fuente
/path/to/build
.Simplemente puede hacer un búfer Dired del directorio donde desea invocar el comando de compilación, para servir como un ancla. Cuando desee compilar, cambie al búfer Dired y ejecute el comando de compilación.
compile
ejecutará su comando en este directorio del búfer Dired. La ventaja de esto es que no tienes queM-x cd atravesar directorios cuando desee compilar.Si lo usa
projectile
, tiene un comando llamadoprojectile-compile
que ejecuta automáticamente el comando de compilación en la raíz del proyecto reconocido porprojectile
.fuente
Este comando alternativo debería hacer el truco:
Alternativamente, después de ejecutar la compilación utilizando el
compile
comando regular , puede evaluar(setq default-directory "~/somedir")
en el*compilation*
búfer. Eso debería hacer que el error de navegación funcione, pero podría detenerserecompile
y que los amigos hagan lo correcto.fuente