Mengapa defgroup bermanfaat?

9

Saya membaca idosumbernya dan melihat:

(defgroup ido nil
 "Switch between files using substrings."
 :group 'extensions
 :group 'convenience
 :version "22.1"
 :link '(emacs-commentary-link :tag "Commentary" "ido.el")
 :link '(emacs-library-link :tag "Lisp File" "ido.el")
 :link '(custom-manual "(ido) Top")
 :link '(info-link "(ido) Customization"))

defgroupmuncul di bagian atas banyak paket besar. Saya melihatnya melakukan ini:

Nyatakan SYMBOL sebagai grup penyesuaian yang berisi ANGGOTA. SIMBOL tidak perlu dikutip.

Dan halaman pada grup penyesuaian tidak benar-benar menjawab kapan atau bagaimana menggunakannya. Kapan atau bagaimana Anda menggunakannya?

Djechlin
sumber

Jawaban:

8

Kapan dan mengapa Anda menggunakan pengelompokan apa saja? Untuk dapat bertindak atas kelompok secara keseluruhan atau pada anggota individu - hanya anggotanya. Itu jawabannya di sini juga.

  • Ada perintah dan fungsi lain yang bekerja pada kelompok atau kelompok tertentu. customize-groupadalah salah satu yang bertindak pada grup tertentu. customize-apropos-groupsadalah salah satu yang bertindak pada sekelompok kelompok.

  • Saat Anda menggunakan, customize-groupAnda melihat tautan yang memungkinkan Anda mengkustomisasi subkelompok (jika ada) dan masing-masing anggota (opsi dan wajah) dari grup itu.

Selain itu, grup biasanya memiliki awalan, dan Anda dapat menggunakannya untuk pencocokan pola dengan fungsi, wajah, dll. Nama saat Anda berinteraksi dengan Emacs. Ini adalah cara lain untuk membatasi tindakan ke set tertentu (kelompok penyesuaian) hal.

Grup juga dapat menyediakan akses cepat ke dokumen online, kode sumber, pelaporan bug, dll. Untuk suatu paket. Di sini, misalnya, adalah definisi dari grup Icicles-Key-Completion(dengan beberapa kode dihilangkan).

(defgroup Icicles-Key-Completion nil
  "Icicles preferences related to key completion (`icicle-complete-keys')."
  :prefix "icicle-" :group 'Icicles
  :link `(url-link :tag "Send Bug Report" ...)
  :link '(url-link :tag "Other Libraries by Drew" ...)
  :link '(url-link :tag "Download" ...)
  :link '(url-link :tag "Description" ...)
  :link '(emacs-commentary-link :tag "Doc-Part2" "icicles-doc2")
  :link '(emacs-commentary-link :tag "Doc-Part1" "icicles-doc1"))

Grup ini sendiri merupakan subkelompok grup Icicles(lihat :group). Ini memberikan tautan di buffer Kustomisasi untuk mengirim laporan bug, mengunduh, dan mengakses dokumen dalam kode sumber atau di Web.

Drew
sumber