Next: , Up: Documentation   [Contents][Index]


23.1 Documentation Basics

ドキュメント文字列は、テキストをダブルクォート文字で囲んだ、文字列にたいするLisp構文を使用して記述されます。実はこれは実際のLisp文字列です。関数または変数の定義内の適切な箇所に文字列があると、それは関数または変数のドキュメントの役割を果たします。

関数定義(lambdadefunフォーム)の中では、ドキュメント文字列は引数リストの後に指定され、通常は関数オブジェクト内に直接格納されます。Function Documentationを参照してください。関数名のfunction-documentationプロパティに関数ドキュメントをputすることもできます(Accessing Documentationを参照)。

変数定義(defvarフォーム)の中では、ドキュメント文字列は初期値の後に指定されます。Defining Variablesを参照してください。この文字列は、その変数のvariable-documentationプロパティに格納されます。

Emacsがメモリー内にドキュメント文字列を保持しないときがあります。それには、2つの状況があります。1つ目はメモリーを節約するためで、事前ロードされた関数および変数(プリミティブを含む)のドキュメントは、doc-directoryで指定されたディレクトリー内の、DOCという名前のファイルに保持されます(Accessing Documentationを参照)。2つ目は関数または変数がバイトコンパイルされたファイルからロードされたときで、Emacsはそれらのドキュメント文字列のロードを無効にします(Docs and Compilationを参照)。どちらの場合も、ある関数にたいしてユーザーがC-h f(describe-function)を呼び出したときなど、Emacsは必要なときだけファイルのドキュメント文字列を照会します。

ドキュメント文字列には、ユーザーがドキュメントを閲覧するときのみ照会されるキーバインディングを参照する、特別なキー置換シーケンス(key substitution sequences)を含めることができます。これにより、たとえユーザーがデフォルトのキーバインディングを変更していても、ヘルプコマンドが正しいキーを表示できるようになります。

オートロードされたコマンド(Autoloadを参照)のドキュメント文字列では、これらのキー置換シーケンスは特別な効果をもち、そのコマンドにたいするC-h fにより、オートロードをトリガーします(これは*Help*バッファー内のハイパーリンクを正しくセットアップするために必要となる)。