Actuellement, ma commande de compilation est la suivante:
cd ~/somedir && ./somescript.sh
Cela empêche emacs de trouver le fichier dans lequel une erreur se produit (et de l'ouvrir).
Bien sûr, je peux exécuter M-x cd
manuellement mais existe-t-il un moyen de dire au tampon de changer son répertoire actuel par programme?
compilation-mode
Thomas Moulard
la source
la source
Réponses:
Enfin, j'ai abandonné de compter sur le répertoire actuel car il était trop intrusif et d'autres choses comme ido où la fin était affectée ...
Au lieu de cela, j'utilise ajouté mon répertoire de construction à
compilation-search-path
Trouvé sur cette question: Comment ajuster le chemin que l'erreur de compilation-goto d'Emacs obtient du tampon de compilation?
La question explique également que le matcher de répertoires peut changer le répertoire automatiquement si certaines chaînes particulières sont émises:
Ceci est également personnalisable apparemment.
la source
/path/to/build
.Vous pouvez simplement créer un tampon Dired du répertoire où vous souhaitez appeler la commande de compilation, pour servir d'ancre. Lorsque vous souhaitez compiler, basculez vers le tampon Dired et exécutez la commande de compilation.
compile
exécutera sa commande dans ce répertoire du tampon Dired. L'avantage de ceci est que vous n'avez pas à M-x cdparcourir les répertoires lorsque vous souhaitez compiler.Si vous utilisez
projectile
, il a une commande nomméeprojectile-compile
qui exécute automatiquement la commande de compilation à la racine du projet reconnue parprojectile
.la source
Cette commande alternative devrait faire l'affaire:
Alternativement, après avoir exécuté la compilation à l'aide de la
compile
commande standard , vous pouvez évaluer(setq default-directory "~/somedir")
dans le*compilation*
tampon. Cela devrait faire fonctionner la navigation d'erreur, mais cela pourrait empêcher lesrecompile
amis de faire la bonne chose.la source