defcustomでユーザーオプションを定義するときには、
そのカスタマイズ型(customization type)を定義する必要があります。
これはLispオブジェクトであり、
(1)どのような値が正しいものであり、
(2)編集用にカスタマイズバッファに表示する方法、
を示します。
カスタマイズ型は、defcustom内の:typeキーワードで指定します。
:typeの引数は評価されます。
実行時に型が変わるものはほとんど使い途がないので、
普通、クォートした型を指定します。
たとえば、つぎのとおりです。
(defcustom diff-command "diff"
"*The command to use to run diff."
:type '(string)
:group 'diff)
一般に、カスタマイズ型はリストであり、 その先頭要素はシンボルで、次節以降で定義するカスタマイズ型名の1つです。 このシンボルのあとには、シンボルに依存した数個の引数が続きます。 型シンボルとその引数のあいだには、 キーワード・値の対を書くこともできます (see Type Keywords)。
型シンボルには、引数を取らないものもあります。
これらを単純型(simple types)と呼びます。
単純型では、キーワード・値の対を指定しなければ、
型シンボルを囲む括弧を省略できます。
たとえば、カスタマイズ型としてのstringは、
(string)と等価です。