defcustom でユーザーオプションを定義する際は、その カスタマイズタイプ を指定する必要があります。これは、(1) どの値が有効であるか、および (2)
編集用のカスタマイズバッファに値をどのように表示するかを記述する Lisp オブジェクトです。
defcustom で :type
キーワードを用いてカスタマイズタイプを指定します。:type の引数は評価されますが、defcustom
が実行される際に一度だけ行われるため、値を変化させる目的には適していません。通常は引用符で囲んだ定数を使用します。例えば:
(defcustom diff-command "diff" "The command to use to run diff." :type '(string) :group 'diff)
一般に、カスタマイズ型とは、最初の要素が以下のセクションで定義されているカスタマイズ型名のいずれかであるシンボルからなるリストのことです。このシンボルの後には、シンボルに応じて複数の引数が続きます。型シンボルとその引数の間には、任意でキーワードと値のペアを記述できます(型キーワードを参照)。
一部の型シンボルは引数を一切使用しません。これらは単純型と呼ばれます。単純型の場合、キーワードと値のペアを一切使用しないのであれば、型シンボルを囲む括弧を省略できます。例えば、カスタマイズ型として単にstringと記述しても、(string)と同等になります。
すべてのカスタマイズタイプはウィジェットとして実装されています。詳細はThe Emacs Widget Libraryのはじめにを参照してください。