次のいくつかのセクションで説明するカスタマイズ宣言—defcustom、defgroupなど—はいずれも、さまざまな情報を指定するためのキーワード引数(不変の変数を参照)を受け付けます。本セクションでは、すべての種類のカスタマイズ宣言に適用されるキーワードについて説明します。
:tagを除くこれらのキーワードはすべて、同一項目内で複数回使用できます。キーワードを使用するたびに、それぞれ独立した効果が生じます。ただし、:tagキーワードは例外で、同一項目に表示できる名前は1つのみです。
:tag label
¶カスタマイズメニューやバッファでアイテムにラベルを付ける際は、アイテム名の代わりに文字列 label を使用してください。 アイテムの実際の名称と著しく異なるタグは使用しないでください。混乱を招く恐れがあります。
:group group
¶このカスタマイズ項目をグループ group に配置します。カスタマイズ項目にこのキーワードが含まれていない場合は、(現在のファイル内で)最後に定義されたグループに配置されます。
defgroup 内で :group
を使用すると、新しいグループは group の部分群になります。
このキーワードを複数回使用すると、1つのアイテムを複数のグループに振り分けることができます。いずれかのグループを表示すると、このアイテムが表示されます。結果が煩わしくなるため、使いすぎにはご注意ください。
:link link-data
¶この項目のドキュメント文字列の後に外部リンクを含めてください。これは、他のドキュメントを参照するボタンを含む文章です。
link-data の代わりに使用できる代替手段がいくつかあります:
(custom-manual info-node)Infoノードへのリンク。info-nodeは、"(emacs)Top"のようにノード名を指定する文字列です。リンクはカスタマイズバッファに‘[Manual]’として表示され、info-nodeで組み込みのInfoリーダーに入ります。
(info-link info-node)custom-manualと同様ですが、リンクがInfoノード名と共にカスタマイズバッファに表示されます。
(url-link url)ウェブページへのリンク。urlはURLを指定する文字列です。リンクはカスタマイズバッファにurlとして表示され、browse-url-browser-functionで指定されたWWWブラウザを起動します。
(emacs-commentary-link library)ライブラリのコメントセクションへのリンクです。library はライブラリ名を指定する文字列です。Emacsライブラリの標準ヘッダーを参照してください。
(emacs-library-link library)Emacs Lispライブラリファイルへのリンク。libraryはライブラリ名を指定する文字列です。
(file-link file)ファイルへのリンク。fileは、ユーザーがこのリンクを呼び出した際にfind-fileでアクセスするファイル名を指定する文字列です。
(function-link function)関数のドキュメントへのリンクです。functionは、ユーザーがこのリンクを呼び出した際にdescribe-functionで説明する関数名を指定する文字列です。
(variable-link variable)変数のドキュメントへのリンクです。variableは、ユーザーがこのリンクを呼び出した際にdescribe-variableで説明する変数名を指定する文字列です。
(face-link face)フェイスのドキュメントへのリンクです。faceは、ユーザーがこのリンクを呼び出した際にdescribe-faceを用いて記述するフェイス名を指定する文字列です。
(custom-group-link group)別のカスタマイズグループへのリンク。これを呼び出すと、group 用の新しいカスタマイズバッファが作成されます。
link-data の最初の要素の後に :tag name を追加することで、カスタマイズバッファで使用するテキストを指定できます。例えば、(info-link :tag "foo" "(emacs)Top")
は Emacs マニュアルへのリンクを作成し、バッファ内では ‘foo’
として表示されます。
このキーワードを複数回使用して、複数のリンクを追加できます。
:load file
¶このカスタマイズ項目を表示する前に、ファイル file(文字列)を読み込みます(読み込みを参照)。読み込みは load を用いて行われ、かつファイルがまだ読み込まれていない場合にのみ実行されます。
:require feature
¶保存済みのカスタマイズでこの項目の値が設定された際に、(require 'feature)を実行してください。featureはシンボルである必要があります。
:require
を使用する最も一般的な理由は、変数がマイナーモードなどの機能を有効にしており、そのモードを実装するコードがロードされない限り、単に変数を設定するだけでは何の効果も得られない場合です。
:version version
¶このキーワードは、その項目が Emacs バージョン version で初めて導入されたか、あるいはそのバージョンでデフォルト値が変更されたことを指定します。値 version は文字列である必要があります。
:package-version '(package . version)
¶このキーワードは、項目が package バージョン version
で初めて導入されたか、あるいはそのバージョンで意味や既定値が変更されたことを指定します。このキーワードは :version よりも優先されます。
package はパッケージの正式名称をシンボル(例:MH-E)として指定してください。version
は文字列としてください。パッケージ package が Emacs
の一部としてリリースされる場合は、package と version が customize-package-emacs-version-alist の値に含まれるようにしてください。
Emacsの一部として配布されるパッケージで :package-version
キーワードを使用している場合は、customize-package-emacs-version-alist 変数も更新する必要があります。
このalistは、:package-versionキーワードに記載されたパッケージのバージョンに関連付けられたEmacsのバージョンのマッピングを提供します。その要素は以下の通りです。
(package (pversion . eversion)...)
シンボルである各 package に対して、対応する Emacs バージョン eversion を持つパッケージバージョン pversion を含む要素が1つ以上存在します。これらのバージョンは文字列です。例えば、MH-E パッケージはこの alist を以下のように更新します:
(add-to-list 'customize-package-emacs-version-alist
'(MH-E ("6.0" . "22.1") ("6.1" . "22.1") ("7.0" . "22.1")
("7.1" . "22.1") ("7.2" . "22.1") ("7.3" . "22.1")
("7.4" . "22.1") ("8.0" . "22.1")))
package の値は一意である必要があり、かつ :package-version キーワードに現れる package
の値と一致している必要があります。ユーザーがエラーメッセージでこの値を目にする可能性があるため、MH-E や Gnus
といったパッケージの正式名称にするのが適切です。