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


23.5 Help Functions

Emacsは、さまざまなビルトインのヘルプ関数を提供し、それらはすべてプレフィックスC-hのサブコマンドとして、ユーザーがアクセスできます。それらについての詳細は、Help in The GNU Emacs Manualを参照してください。ここでは、同様な情報についてプログラムレベルのインターフェイスを説明します。

Command: apropos pattern &optional do-all

この関数は、名前にaproposパターン(apropos pattern: 適切なパターン) patternを含む、“重要”なすべてのシンボルを探す。マッチに使用されるaproposパターンは単語、最低2つはマッチしなければならないスペース区切りの単語、または(特別な正規表現文字があれば)正規表現のいずれかである。あるシンボルが関数、変数、フェイスとしての定義、あるいはプロパティをもつ場合、そのシンボルは“重要”とされる。

関数は、以下のような要素のリストをリターンする:

(symbol score function-doc variable-doc
 plist-doc widget-doc face-doc group-doc)

ここで、scoreはマッチの面からそのシンボルがどれだけ重要に見えるかを比較する整数である。残りの各要素は、symbolにたいする関数、変数、...等のドキュメント文字列(またはnil)である。

これは*Apropos*という名前のバッファーにもシンボルを表示し、その際各行にはドキュメント文字列の先頭から取得した1行説明とともに表示される。

do-allが非nil、またはユーザーオプションapropos-do-allが非nilの場合、aproposは見つかった関数のキーバインディングも表示する。これは重要なものだけでなく、のinternされたすべてのシンボルも表示する(同様にリターン値としてもそれらをリストする)。

Variable: help-map

この変数の値は、HelpキーC-hに続く文字にたいするローカルキーマップである。

Prefix Command: help-command

このシンボルは関数ではなく、関数定義セルにはhelp-mapとして知られる、キーマップを保持する。これは、help.el内で以下のように定義されている:

(define-key global-map (string help-char) 'help-command)
(fset 'help-command help-map)
User Option: help-char

この変数の値は、ヘルプ文字(help character: Helpを意味する文字としてEmacsが認識する文字)である。デフォルトでは、C-hを意味する8が値である。この文字を読み取った際、help-formが非nilのLisp式ならば、Emacsはその式を評価して、結果が文字列の場合はウィンドウ内にそれを表示する。

通常、help-formの値はnilである。その場合、ヘルプ文字はコマンド入力のレベルにおいて特別な意味を有せず、通常の方法におけるキーシーケンスの一部となる。C-hの標準的なキーバインディングは、複数の汎用目的をもつヘルプ機能のプレフィックスキーである。

ヘルプ文字は、プレフィックスキーの後でも特別な意味をもつ。ヘルプ文字がプレフィックスキーのサブコマンドとしてバインディングをもたない場合は、そのプレフィックスキーのすべてのサブコマンドのリストを表示する、describe-prefix-bindingsを実行する。

User Option: help-event-list

この変数の値は、“ヘルプ文字”の代役を果たすイベント型のリストである。これらのイベントは、help-charで指定されるイベントと同様に処理される。

Variable: help-form

この変数が非nilの場合、その値は文字help-charが読み取られるたびに評価されるフォームである。そのフォームの評価により文字列が生成された場合は、その文字列が表示される。

read-eventread-char-choiceread-charを呼び出すコマンドは、それが入力を行う間は、恐らくhelp-formを非nilにバインドすべきであろう(C-hが他の意味をもつ場合は、これを行うべきではない)。この式を評価した結果は、何にたいする入力なのか、そしてそれを正しくエンターする方法を説明する文字列であること。

ミニバッファーへのエントリーにより、この変数はminibuffer-help-formの値にバインドされる(Definition of minibuffer-help-formを参照)。

Variable: prefix-help-command

この変数は、プレフィックスキーにたいするヘルプをプリントする関数を保持する。その関数は、ユーザーが後にヘルプ文字を伴うプレフィックスキーをタイプし、そのヘルプ文字がプレフィックスの後のバインディングをもたないたときに呼び出される。この変数のデフォルト値はdescribe-prefix-bindingsである。

Command: describe-prefix-bindings

この関数は、もっとも最近のプレフィックスキーのサブコマンドすべてにたいするリストを表示する。プレフィックスの説明は、そのキーシーケンスの最後のイベントを除くすべてから構成される(最後のイベントは、恐らくヘルプ文字であろう)。

以下の2つの関数は、“electric”モードのように制御を放棄することなくヘルプを提供したいモードを意図しています。これらは、通常のヘルプ関数と区別するため、名前が‘Helper’で始まります。

Command: Helper-describe-bindings

このコマンドは、ローカルキーマップとグローバルキーマップの両方のキーバインディングすべてのリストを含むヘルプバッファーを表示するウィンドウをポップアップする。これはdescribe-bindingsを呼び出すことにより機能する。

Command: Helper-help

このコマンドは、カレントモードにたいするヘルプを提供する。これはミニバッファー内でメッセージ‘Help (Type ? for further options)’とともにユーザーに入力を求め、その後キーバインディングが何か、何を意図するモードなのかを探すための助けを提供する。これはnilをリターンする。

これは、マップHelper-help-mapを変更することによりカスタマイズできる。

Variable: data-directory

この変数は、Emacsに付随する特定のドキュメントおよびテキストファイルを探すディレクトリーの名前を保持する。

Function: help-buffer

この関数は、ヘルプバッファーの名前(通常は*Help*)をリターンする。そのようなバッファーが存在しない場合は、最初にそれを作成する。

Macro: with-help-window buffer-name body…

このマクロは、with-output-to-temp-buffer(Temporary Displaysを参照)のようにbodyを評価して、そのフォームが生成したすべての出力を、buffer-nameという名前のバッファーに挿入する(buffer-nameは、通常は関数help-bufferによりリターンされる値であるべきだろう)。これは、指定されたバッファーをHelpモードに置き、ヘルプウィンドウをquit、およびスクロールする方法を告げるメッセージを表示する。これは、ユーザーオプションhelp-window-selectのカレント値が適切にセットされていれば、ヘルプウィンドウの選択も行う。これはbody内の最後の値をリターンする。

Function: help-setup-xref item interactive-p

この関数は、*Help*バッファー内のクロスリファレンスデータを更新する。このクロスリファレンスは、ユーザーが‘Back’ボタンまたは‘Forward’ボタン上でクリックした際に、ヘルプ情報の再生成に使用される。*Help*バッファーを使用するほとんどのコマンドは、バッファーをクリアーする前に、この関数を呼び出すべきである。item引数は、(function . args)という形式であること。ここで、functionは引数リストargsで呼び出されるヘルプバッファーを再生成する関数である。コマンド呼び出しがinteractiveに行われた場合、interactive-p引数は非nilである。この場合、*Help*バッファーの‘Back’ボタンにたいするitemのスタックはクリアーされる。

help-bufferwith-help-windowhelp-setup-xrefの使用例は、describe-symbols exampleを参照してください。

Macro: make-help-screen fname help-line help-text help-map

このマクロは、提供するサブコマンドのリストを表示するプレフィックスキーのように振る舞う、fnameという名前のヘルプコマンドを定義する。

呼び出された際、fnameはウィンドウ内にhelp-textを表示してから、help-mapに応じてキーシーケンスの読み取りと実行を行う。文字列help-textは、help-map内で利用可能なバインディングを説明すべきである。

コマンドfnameは、help-textの表示をスクロールすることによる、自身のいくつかのイベントを処理するために定義される。fnameがこれらのスペシャルイベントのいずれかを読み取った際は、スクロールを行った後で他のイベントを読み取る。自身が処理する以外のイベントを読み取り、そのイベントがhelp-map内にバインディングを有す際は、そのキーのバインディングを実行した後リターンする。

引数help-lineは、help-map内の候補の1行要約であること。Emacsのカレントバージョンでは、オプションthree-step-helptにセットした場合のみ、この引数が使用される。

このマクロは、C-h C-hにバインドされるコマンドhelp-for-help内で使用される。

User Option: three-step-help

この変数が非nilの場合、make-help-screenで定義されたコマンドは、最初にエコーエリア内に自身のhelp-line文字列を表示し、ユーザーが再度ヘルプ文字をタイプした場合のみ、長いhelp-text文字列を表示する。