Saat ini, perintah kompilasi saya adalah sebagai berikut:
cd ~/somedir && ./somescript.sh
Ini mencegah emacs dari menemukan file di mana kesalahan terjadi (dan membukanya).
Tentu saja saya dapat menjalankannya M-x cd
secara manual tetapi apakah ada cara untuk memberitahu buffer untuk mengubah direktori saat ini secara terprogram?
compilation-mode
Thomas Moulard
sumber
sumber
Jawaban:
Akhirnya, saya meninggalkan mengandalkan direktori saat ini karena terlalu mengganggu dan hal-hal lain seperti ido di mana akhirnya terpengaruh ...
Sebagai gantinya, saya menggunakan direktori build saya yang ditambahkan ke
compilation-search-path
Ditemukan pada pertanyaan ini: Bagaimana cara menyesuaikan lintasan yang didapat kompilasi-goto-kesalahan Emacs dari buffer kompilasi?
Pertanyaannya juga menjelaskan bahwa pencocokan direktori dapat mengubah direktori secara otomatis jika beberapa string tertentu dipancarkan:
Ini juga bisa disesuaikan rupanya.
sumber
/path/to/build
.Anda cukup membuat buffer Dired dari direktori tempat Anda ingin menjalankan perintah kompilasi, untuk berfungsi sebagai jangkar. Saat Anda ingin mengkompilasi, beralihlah ke buffer Dired dan jalankan perintah kompilasi.
compile
akan menjalankan perintahnya di direktori buffer Dired ini. Keuntungan dari ini adalah Anda tidak perlu M-x cdatau melintasi direktori ketika Anda ingin mengkompilasi.Jika Anda menggunakan
projectile
, itu memiliki perintah bernamaprojectile-compile
yang secara otomatis menjalankan perintah kompilasi pada root proyek yang dikenali olehprojectile
.sumber
Perintah alternatif ini harus melakukan trik:
Atau, setelah Anda menjalankan kompilasi menggunakan
compile
perintah biasa , Anda dapat mengevaluasi(setq default-directory "~/somedir")
dalam*compilation*
buffer. Itu seharusnya membuat navigasi kesalahan berfungsi, tetapi mungkin berhentirecompile
dan teman-teman melakukan hal yang benar.sumber