Saya mengerti apa fungsi autoload untuk fungsi (mendaftarkan file untuk memuat ketika fungsi tersebut dipanggil atau string dokumentasinya diambil). Namun, tidak jelas bagaimana menggunakan fasilitas autoload dalam hubungannya dengan variabel dan makro.
Saya punya dua pertanyaan:
Apa yang terjadi ketika paket memiliki parameter, diimplementasikan sebagai variabel yang dapat ditetapkan pengguna, tetapi tidak dimuat secara otomatis? Haruskah variabel seperti itu dimuat secara otomatis? Jika tidak, ternyata variabel tersebut tidak ada, lingkungan Lisp tidak tahu apa-apa tentang mereka, termasuk nilai defaultnya, sampai beberapa fungsi yang dimuat secara otomatis dari paket digunakan (biasanya setelah memuat file konfigurasi), kemudian jika pengguna mengaturnya dalam bukunya. / file konfigurasinya, itu seperti mengatur variabel yang tidak ada. Jika nilai variabel adalah daftar yang tidak kosong dan pengguna menggunakan
push
atauadd-to-list
untuk mengubah nilainya, apa yang sebenarnya terjadi? Apakah nilai default hilang?Apa yang terjadi ketika makro diisi otomatis? Kapan kami harus memuat ulang makro secara otomatis?
sumber
setq
diedit (yaitu tidak peduli nilai apa yang mereka miliki sebelumnya) dapat memiliki standar yang ditentukan dalamdefvar
ataudefcustom
bentuk, tetapi dalam kasus daftar yang dapat diperluas oleh pengguna yang terbaik untuk digunakan,eval-after-load
bukan? Juga, kadang-kadang default yang baik adalah baik, bahkan jika mereka mengambil bentuk daftar ;-)eval-after-load
, itu adalah bug dalam implementasi paket. Biasanya,eval-after-load
harus digunakan untuk perbaikan bug atau penyesuaian yang sangat tidak biasa. Ngomong-ngomong, mungkin lebih baik menggunakan pengait jika paketnya tersedia.eval-after-load
jalan, pengguna masih tidak akan dapat menghapus elemen dari daftar! Ini membuat saya bertanya-tanya apakah saya harus meninggalkan default sama sekali.eval-after-load
seharusnya hanya diperlukan untuk situasi yang tidak biasa. Ini adalah salah satu alat standar dalam toolkit pemuatan yang ditangguhkan. Jika orang tidak ingin menggunakan alat seperti itu, mereka dapatrequire
perpustakaan di depan (yang memang apa yang pendatang baru selalu disarankan untuk dilakukan - pada saat mereka mulai berpikir "Saya berharap Emacs mulai sedikit lebih cepat", mereka ' Mungkin sudah cukup belajar untuk tidak takut dengan sintaks baru :)customize-set-variable
daripadasetq
mungkin bagus. Tetapi saya tidak punya waktu sekarang untuk studi yang cermat diperlukan untuk meningkatkan jawaban saya dalam hal ini. Jika Anda pikir ini penting, mengapa Anda tidak menulis jawaban Anda sendiri? Ini akan lebih terlihat daripada utas komentar panjang ini.