Next: Accessing Documentation, Up: Documentation [Contents][Index]
ドキュメント文字列は、テキストをダブルクォート文字で囲んだ、文字列にたいするLisp構文を使用して記述されます。実はこれは実際のLisp文字列です。関数または変数の定義内の適切な箇所に文字列があると、それは関数または変数のドキュメントの役割を果たします。
関数定義(lambda
やdefun
フォーム)の中では、ドキュメント文字列は引数リストの後に指定され、通常は関数オブジェクト内に直接格納されます。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*バッファー内のハイパーリンクを正しくセットアップするために必要となる)。