各Emacs Lispパッケージには、パッケージ内のすべてのオプション、フェイス、およびその他のグループを包含するメインのカスタマイズグループを1つ設けるべきです。オプションやフェイスの数が少ない場合は、グループを1つだけ使用し、すべてをその中にまとめてください。オプションやフェイスが20個程度を超える場合は、それらをサブグループに分割し、それらのサブグループをパッケージのメインカスタマイズグループの下に配置してください。一部のオプションやフェイスを、サブグループと並んでパッケージのメイングループに配置しても問題ありません。
パッケージのメイングループまたは唯一のグループは、1つ以上の標準カスタマイズグループのいずれかに属している必要があります。(グループの全一覧を表示するには、M-x customize を使用してください。)その中から1つ以上(ただし多すぎない程度に)を選択し、:group キーワードを用いて、それぞれのグループに自グループを追加してください。
新しいカスタマイズグループを宣言するには、defgroupを使用します。
group を members を含むカスタマイズグループとして宣言します。シンボル group は引用符で囲まないでください。引数 doc はグループのドキュメント文字列を指定します。
引数 members
は、グループのメンバーとなるカスタマイズ項目の初期セットを指定するリストです。ただし、多くの場合 members は nil となっており、メンバーを定義する際に
:group キーワードを用いてグループのメンバーを指定します。
members でグループメンバーを指定したい場合は、各要素を (name widget) の形式にする必要があります。ここで name はシンボル、widget
はそのシンボルを編集するためのウィジェットタイプです。便利なウィジェットとしては、変数用の custom-variable、フェイス用の custom-face、グループ用の custom-group があります。
Emacsに新しいグループを導入する際は、defgroup内で:versionキーワードを使用してください。そうすれば、グループの個々のメンバーに対してそれを使用する必要はありません。
共通キーワード(共通項目キーワードを参照)に加えて、このキーワードをdefgroupでも使用できます:
:prefix prefix
¶グループ内のアイテム名が prefix で始まり、かつカスタマイズ可能な変数 custom-unlispify-remove-prefixes が nil 以外である場合、そのアイテムのタグからは prefix
が省略されます。グループには任意の数のプレフィックスを設定できます。
グループの変数、面、および部分群は、グループのシンボルの custom-group
プロパティに格納されます。シンボルプロパティへのアクセス
を参照してください。このプロパティの値は、car
が変数、面、または部分群のシンボルであり、cdr が対応するシンボル custom-variable、custom-face、または custom-group
のいずれかであるペアのリストです。
この変数が nil 以外の場合、ユーザーがグループをカスタマイズするたびに、グループの :prefix キーワードで指定されたプレフィックスがタグ名から省略されます。
デフォルト値は nil
であり、つまりプレフィックス破棄機能は無効になっています。これは、プレフィックスを破棄すると、オプションやフェイスの名称が分かりにくくなることが多いためです。