Warum ist defgroup nützlich?

9

Ich lese die idoQuelle und sehe:

(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"))

defgrouperscheint oben in vielen großen Paketen. Ich sehe, dass es das tut:

Deklarieren Sie SYMBOL als Anpassungsgruppe mit MEMBERS. SYMBOL muss nicht zitiert werden.

Und die Seite über Anpassungsgruppen antwortet nicht wirklich, wann oder wie sie verwendet werden sollen. Wann oder wie benutzt du sie?

Djechlin
quelle

Antworten:

8

Wann und warum verwenden Sie eine Gruppierung? In der Lage sein, auf die Gruppe als Ganzes oder auf ihre einzelnen Mitglieder zu reagieren - nur auf ihre Mitglieder. Das ist auch hier die Antwort.

  • Es gibt Befehle und andere Funktionen, die auf eine bestimmte Gruppe oder Gruppe von Gruppen wirken. customize-groupist eine, die auf eine bestimmte Gruppe einwirkt. customize-apropos-groupsist eine, die auf eine Reihe von Gruppen wirkt.

  • Wenn Sie verwenden customize-group, sehen Sie Links, mit denen Sie Untergruppen (falls vorhanden) und einzelne Mitglieder (Optionen und Gesichter) dieser Gruppe anpassen können.

Darüber hinaus hat eine Gruppe normalerweise ein Präfix, das Sie für die Mustererkennung mit Funktions-, Gesichts- usw. Namen verwenden können, wenn Sie mit Emacs interagieren. Dies ist eine weitere Möglichkeit, Aktionen auf einen bestimmten Satz (Anpassungsgruppe) von Dingen zu beschränken.

Eine Gruppe kann auch einen schnellen Zugriff auf das Online-Dokument, den Quellcode, die Fehlerberichterstattung usw. für ein Paket bereitstellen. Hier ist zum Beispiel die Definition der Gruppe Icicles-Key-Completion(mit etwas elidiertem Code).

(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"))

Diese Gruppe ist selbst eine Untergruppe von Gruppen Icicles(siehe :group). Es enthält Links im Anpassungspuffer zum Senden eines Fehlerberichts, Herunterladen und Zugreifen auf das Dokument im Quellcode oder im Web.

Drew
quelle