Obecnie moje polecenie kompilacji wygląda następująco:
cd ~/somedir && ./somescript.sh
Zapobiega to znalezieniu przez emacsa pliku, w którym wystąpił błąd (i jego otwarciu).
Oczywiście, że mogę uruchomić M-x cd
ręcznie, ale czy istnieje sposób, aby nakazać buforowi programową zmianę bieżącego katalogu?
compilation-mode
Thomas Moulard
źródło
źródło
Odpowiedzi:
Wreszcie porzuciłem poleganie na bieżącym katalogu, ponieważ był on zbyt nachalny i inne rzeczy, takie jak ido, na które miało wpływ zakończenie.
Zamiast tego używam dodanego mojego katalogu kompilacji
compilation-search-path
Znalazłem to pytanie: Jak dostosować ścieżkę, którą błąd kompilacji-goto Emacsa pobiera z bufora kompilacji?
Pytanie wyjaśnia również, że moduł dopasowywania katalogu może automatycznie zmienić katalog, jeśli zostaną wyemitowane określone ciągi znaków:
Najwyraźniej można to również dostosować.
źródło
/path/to/build
.Możesz po prostu utworzyć bufor Dired katalogu, w którym chcesz wywołać polecenie kompilacji, aby służył jako kotwica. Aby skompilować, przejdź do bufora Dired i uruchom polecenie kompilacji.
compile
uruchomi polecenie w tym katalogu bufora Dired. Zaletą tego jest to, że nie musisz przeglądać M-x cdkatalogów, gdy chcesz skompilować.Jeśli używasz
projectile
, ma polecenia o nazwieprojectile-compile
, która automatycznie uruchamia kompilacji polecenie w katalogu głównym projektu uznanego przezprojectile
.źródło
To alternatywne polecenie powinno załatwić sprawę:
Alternatywnie, po uruchomieniu kompilacji za pomocą zwykłego
compile
polecenia, możesz ewaluować(setq default-directory "~/somedir")
w*compilation*
buforze. To powinno sprawić, że nawigacja po błędach zadziała, ale może przestać,recompile
a znajomi nie zrobią tego, co należy.źródło