Bagaimana saya bisa menyesuaikan perintah kompilasi?

8

Dalam salah satu proyek saya, saya perlu menjalankan make package installketika membangun bukan make. Ia mengingat perintah kompilasi terakhir yang saya gunakan, tetapi me-reset ke make -ksetiap kali emacs dimulai. Bagaimana saya bisa menyesuaikan M-x compileke default make package install?

Connor
sumber
Apa nilainya compilation-read-command? Jika variabel ini disetel ke nilnilai yang tidak bernilai, M-x compileharus meminta Anda untuk menggunakan perintah kompilasi. Atau, Anda bisa melakukannya C-u M-x compile; dalam hal ini, Anda akan diminta untuk perintah terlepas dari nilai compilation-read-command.
itsjeyd
1
Ini diatur ke t. Itu memungkinkan saya untuk mengedit perintah sebelum menjalankan, tapi saya ingin mengubah apa yang defaultnya
Connor
Saya melihat. Diposting komentar di atas sebelum memeriksa suntingan yang Anda buat untuk pertanyaan Anda;)
itsjeyd
Pertanyaan yang bagus Dari manual, saya mendapat kesan bahwa seseorang dapat menambahkan "compile: ..." atau "compile-command: ..." di bagian "Variabel Lokal:" di akhir file, tetapi Emacs baru saya tidak t tampaknya memperhatikan mereka ... :(
imz - Ivan Zakharyaschev

Jawaban:

7

Anda dapat menyesuaikan variabel compile-commanduntuk mengubah perintah kompilasi yang digunakan secara default:

(setq compile-command "make package install")
itu hanya
sumber
Perhatikan bahwa saat pertama kali Anda menjalankan perintah kompilasi yang tidak make package install , perintah baru itu akan menjadi default baru Anda.
nispio
2

Jika Anda ingin menyesuaikan variabel per proyek daripada secara global. Anda dapat menggunakan Variabel Direktori . Ini memungkinkan Anda untuk menerapkan penyesuaian tertentu hanya untuk file dalam direktori tertentu dan subdirektori.

Jadi misalnya Anda ingin menggunakan make package installperintah compile hanya di proyek A, Anda harus membuat file bernama .dir-locals.eldi direktori root proyek dan menambahkan sesuatu seperti berikut ini

((nil . ((compile-command . "make package install"))))

Sintaksnya dijelaskan secara rinci dalam tautan ke manual emacs di atas. Seperti yang ditunjukkan oleh @hatschipuh, Anda dapat menggunakan perintah add-dir-local-variabledan delete-dir-local-variableuntuk dengan mudah menambahkan dan menghapus nilai-nilai lokal dir.

Iqbal Ansari
sumber
Untuk kenyamanan ada perintah add-dir-local-variabledan delete-dir-local-variable.
clemera
@hatschipuh, saran bagus memperbarui jawaban untuk menyebutkan perintah ini
Iqbal Ansari