defgroup为什么有用?


9

我正在阅读ido源代码,并看到:

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

defgroup出现在许多大型包装的顶部。我看到它是这样做的:

将SYMBOL声明为包含MEMBERS的自定义组。SYMBOL不需要被引用。

而且关于自定义组页面并没有真正回答何时或如何使用它们。您何时或如何使用它们?

Answers:


8

您何时以及为何使用任何分组?能够对整个团体或单个成员(仅是其成员)采取行动。这也是答案。

  • 有对给定组或一组组起作用的命令和其他功能。customize-group是对给定组起作用的一个。customize-apropos-groups是对一组组起作用的一个。

  • 使用时,customize-group您会看到一些链接,这些链接可让您自定义该组的子组(如果有)和单个成员(选项和面)。

另外,一个组通常有一个前缀,当您与Emacs进行交互时,您可以使用它来针对功能,面部等名称进行模式匹配。这是将动作限制为给定的一组事物(定制组)的另一种方式。

小组还可以提供对软件包的在线文档,源代码,错误报告等的快速访问。例如,这里是组的定义Icicles-Key-Completion(省略了一些代码)。

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

该组本身是组的子组Icicles(请参阅参考资料:group)。它在Customize缓冲区中提供了链接,用于发送错误报告,下载和访问源代码或Web上的文档。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.