変数(variable)とは、値をもつLipシンボルです。このようなシンボルの名前は、変数名(variable name)とも呼ばれます。変数名には、ファイルに記述できる任意の文字を含めることもできますが、ほとんどの変数名は通常の単語をハイフンで区切って構成されます。
変数の名前には、その変数の役割を簡単に説明する役目があります。ほとんどの変数はドキュメント文字列(documentation
string)ももっていて、これは変数の目的、どのような種類の値をもつべきか、値がどのように使用されるかを説明します。ヘルプコマンドC-h
v (describe-variable
)を使用して、このドキュメントを閲覧できます。変数の確認とセットを参照してください。
Emacsは内部の記録維持のために多くのLisp変数を使用しますが、非プログラマーに一番興味があるのはユーザーが変更することを意図したLisp変数であり、これらはカスタマイズ可能変数(customizable variables)やユーザーオプション(user options)と呼ばれます(Easy Customizationインターフェースを参照してください)。以下のセクションでは、カスタマイズのためのインターフェース以外から変数をセットする方法など、他の観点からEmacs変数を説明します。
(少数の例外を除き)Emacs
Lispでは、任意の変数は任意のタイプの値をもつことができます。しかし多くの変数は、特定のタイプの値を割り当てられた場合だけ意味をもちます。たとえばkillリングの最大長さを指定するkill-ring-max
の値としては、数字だけが意味をもちます。kill-ring-max
の値として文字列を与えた場合、C-y
(yank
)のようなコマンドはエラーをシグナルするでしょう。一方、タイプを気にしない変数もあります。たとえば、変数の値がnil
のときはある効果をもたらし、非nil
のときは別の効果をもたらす場合、シンボルnil
以外の任意の値は、そのタイプに関わらず2番目の効果をもたらします(慣例により、非nil
値を指定するために、通常は値t
— これは“true”が由来です —
を使用します)。カスタマイズバッファーを使用して変数をセットする場合、無効なタイプを与えてしまう心配はありません。カスタマイズバッファーでは通常、意味のある値しか入力できないからです。判別がつかないときは、その変数が期待するどの種類の値かを見るために、C-h
v
(describe-variable
)を使用して、変数のドキュメント文字列をチェックしてください(変数の確認とセットを参照してください)。