Beberapa orang mungkin berpikir itu lebih mudah digunakan setq
. Beberapa orang mungkin berpikir itu lebih lispy. Pada kenyataannya, itu naif dalam kasus umum.
Memang benar bahwa untuk beberapa opsi pengguna tidak masalah. Tetapi bagi yang lain, itu penting, dan setq
merupakan pendekatan yang salah untuk opsi-opsi itu. Jadi sebagai aturan umum, setq
adalah pendekatan yang salah.
Jika Anda menggunakan custom-set-variables
atau customize-set-variable
alih-alih setq
, atau jika Anda menggunakan antarmuka pengguna Kustomisasi (mis. M-x customize-option
), Maka Anda yakin bahwa setiap inisialisasi atau memperbarui kode yang diperlukan untuk nilai opsi akan secara otomatis dipicu dan dijalankan sesuai kebutuhan. Jika Anda menggunakan setq
, ini tidak akan dilakukan.
Sekarang, ini juga merupakan kasus dimana sebagian besar opsi pengguna, terutama banyak dari mereka yang ditulis untuk perpustakaan pihak ke-3, tidak menggunakan defcustom
kata kunci :set
dan :initialize
, dan menggunakan setq
tidak penting bagi mereka. Tetapi banyak opsi vanilla Emacs menggunakan kata kunci seperti itu, dan bagi mereka yang melakukannya, setq
bukanlah hal yang benar. Jadi jika Anda ingin menggunakan kode Lisp dan bukan Customize UI untuk mengatur opsi Anda, maka Anda lebih baik menggunakan custom-set-variables
atau customize-set-variable
bukannya setq
. Tidak pernah sakit dan kadang-kadang membantu (banyak).
Tetapi yang saya rekomendasikan adalah melakukan kedua hal ini:
Gunakan Customize UI alih-alih menulis kode Lisp untuk ini.
Tentukan variabelcustom-file
, sehingga Kustomisasi menulis kustomisasi ke file itu dan bukan ke file init Anda ( ~/.emacs
). TKI, biarkan kode inisialisasi tulisan tangan Anda terpisah dari kode otomatis yang ditulis oleh Customize.