Atualmente, meu comando de compilação é o seguinte:
cd ~/somedir && ./somescript.sh
Isso evita que o emacs encontre o arquivo no qual ocorre um erro (e abra-o).
Claro que posso executar M-x cd
manualmente, mas existe uma maneira de dizer ao buffer para alterar seu diretório atual programaticamente?
compilation-mode
Thomas Moulard
fonte
fonte
Respostas:
Finalmente, eu abandonei a confiar no diretório atual, pois era muito intrusivo e outras coisas como ido, onde acabam sendo afetadas ...
Em vez disso, eu adicionei meu diretório de compilação ao
compilation-search-path
Encontrado nesta pergunta: Como ajustar o caminho que o erro de compilação-goto-erro do Emacs obtém do buffer de compilação?
A pergunta também explica que o correspondente de diretório pode alterar o diretório automaticamente se algumas cadeias de caracteres específicas forem emitidas:
Isso também é personalizável, aparentemente.
fonte
/path/to/build
.Você pode simplesmente criar um buffer Dired do diretório em que deseja chamar o comando compile, para servir como uma âncora. Quando você deseja compilar, alterne para o buffer Dired e execute o comando compile.
compile
executará seu comando nesse diretório do buffer Dired. A vantagem disso é que você não precisa M-x cdatravessar diretórios quando deseja compilar.Se você usar
projectile
, ele possui um comando nomeadoprojectile-compile
que executa automaticamente o comando compile na raiz do projeto reconhecida porprojectile
.fonte
Este comando alternativo deve fazer o truque:
Como alternativa, depois de executar a compilação usando o
compile
comando regular , você pode avaliar(setq default-directory "~/somedir")
no*compilation*
buffer. Isso deve fazer com que a navegação por erro funcione, mas pode pararrecompile
e os amigos de fazerem a coisa certa.fonte