変数とは、値を持つLispシンボルのことです。シンボルの名称は変数名とも呼ばれます。変数名にはファイル内で使用可能なあらゆる文字を含めることができますが、ほとんどの変数名はハイフンで区切られた通常の単語で構成されています。
変数名は、その役割を簡潔に表したものです。また、ほとんどの変数にはドキュメント文字列が用意されており、そこには変数の目的や想定される値の種類、およびその値がどのように使用されるかが記述されています。このドキュメントは、helpコマンド
C-h v (describe-variable)
を使用して確認できます。変数の確認と設定を参照してください。
Emacsは内部的な記録管理に多くのLisp変数を使用していますが、プログラマーではないユーザーにとって最も興味深いのは、ユーザーが変更可能な変数です――これらはカスタマイズ可能な変数またはユーザーオプションと呼ばれます(簡単なカスタマイズインターフェースを参照)。以下のセクションでは、Customize以外でこれらの変数を設定する方法など、Emacs変数のその他の側面について説明します。
Emacs
Lispでは、(いくつかの例外を除き)あらゆる変数に任意の種類の値を代入できます。しかし、多くの変数は、特定の型の値が代入されて初めて意味を持ちます。例えば、キルリングの最大長を指定する
kill-ring-max (以前のキルのヤンク を参照)にとって、意味のある値は数値のみです。kill-ring-max に文字列値を代入すると、C-y
(yank)
などのコマンドはエラーを報告します。一方で、型を問わない変数もあります。例えば、ある変数が nil
の値に対してはある動作をし、nil 以外の値に対しては別の動作をする場合、シンボル nil 以外の値であれば、その型に関わらず後者の動作が誘発されます(慣習的に、nil 以外の値を指定するには、通常 t
――「true」を表すシンボル――
という値を使用します)。カスタマイズバッファを使用して変数を設定する場合、無効な型を代入することを心配する必要はありません。カスタマイズバッファでは通常、意味のある値のみを入力できるようになっているからです。判断に迷ったときは、C-h v (describe-variable)
を使用して変数のドキュメント文字列を確認し、どのような種類の値が期待されるかを調べてください(変数の確認と設定 を参照)。