Next: , Previous: Describing Characters, Up: Documentation


23.5 ヘルプ機能

Emacsにはさまざまオンラインヘルプ関数があり、 それらはすべてプレフィックスC-hのサブコマンドとして使えます。 それらについて詳しくは、 ヘルプ機能を参照してください。 ここでは、同じ情報を得るプログラムレベルのインターフェイスを説明します。

— コマンド: apropos regexp &optional do-all

この関数は、正規表現regexpに一致する名前を持つすべてのシンボルを探し、 それらのリストを返す(see Regular Expressions)。 さらに、バッファ‘*Help*’に、各シンボルについて、 シンボルとその説明文字列の始めの部分から取り出した1行の説明文を表示する。

do-allnil以外であると、 aproposは、みつけた関数に対するキーバインディングも表示する。 さらに、関数や変数以外も含めてすべてのシンボルを表示する。

つぎの例では、aproposは、 ‘exec’を名前に含むすべてのシンボルを探しだす。 (ここではバッファ‘*Help*’の表示は示さない。)

          (apropos "exec")
                (Buffer-menu-execute command-execute exec-directory
              exec-path execute-extended-command execute-kbd-macro
              executing-kbd-macro executing-macro)
— Variable: help-map

この変数の値は、ヘルプキーC-hに続く文字向けのローカルキーマップである。

— プレフィックスコマンド: help-command

このシンボルは関数ではない。 その関数定義セルは、help-mapとして知られるキーマップを保持している。 help.elでの定義はつぎのとおりである。

          (define-key global-map "\C-h" 'help-command)
          (fset 'help-command help-map)
— Function: print-help-return-message &optional function

この関数は、ヘルプコマンドのあとでそれ以前のウィンドウの状態に復元する 方法を述べた文字列を作成する。 メッセージを作成後、functionnil以外であれば、 メッセージをfunctionに適用する。 さもなければ、メッセージをエコー領域に表示するためにmessageを呼び出す。

この関数は、スペシャルフォームwith-output-to-temp-bufferの 中から呼び出され、しかも、 当該スペシャルフォームでstandard-outputに値が束縛されているものと 仮定する。 使用例については、Accessing Documentationの長い例を参照。

— Variable: help-char

この変数の値はヘルプ文字、つまり、 Emacsがヘルプを意味すると認識する文字である。 デフォルトでは、その値はC-hを表す8である。 help-formnil以外のLisp式であると、 Emacsがこの文字を読み取るとその式を評価し、 その結果が文字列であれば結果をウィンドウに表示する。

通常、help-formの値はnilである。 そうすると、ヘルプ文字にはコマンド入力のレベルでは特別な意味はなく、 普通の意味でのキー列の一部になる。 C-hの標準のキーバインディングは、 いくつかの汎用目的のヘルプ機能向けのプレフィックスキーである。

ヘルプ文字は、プレフィックスキーのうしろでも特別である。 プレフィックスのサブコマンドとしてのバインディングがないと、 プレフィックスキーのすべてのサブコマンドの一覧を表示する describe-prefix-bindingsを実行する。

— Variable: help-event-list

この変数の値は、別の『ヘルプ文字』として動作するイベント型のリストである。 これらのイベントはhelp-charで指定されたイベントと まったく同様に扱われる。

— Variable: help-form

この変数がnil以外であると、その値は、 help-charを読むたびに評価すべきフォームである。 フォームを評価すると文字列を生成すれば、その文字列が表示される。

read-eventread-charを呼ぶコマンドは、 入力中にはhelp-formnil以外に(たぶん)束縛すべきである。 (C-hに別の意味がある場合には、こうしないこと。) この式の評価結果は、なんのための入力でどのように入力すべきかを 説明する文字列であること。

ミニバッファに入ると、この変数はminibuffer-help-form (see Minibuffer Misc)の値に束縛される。

— Variable: prefix-help-command

この変数はプレフィックスキーに対するヘルプを表示する関数を保持する。 ユーザーがプレフィックスキーに続けてヘルプ文字や 当該プレフィックスのあとではバインディングを持たない文字を打つと その関数が呼ばれる。 この変数のデフォルト値はdescribe-prefix-bindingsである。

— Function: describe-prefix-bindings

この関数は、もっとも最近のキー列のプレフィックスキーの すべてのサブコマンドの一覧を表示するためにdescribe-bindingsを呼び出す。 プレフィックスの説明には、当該キー列の最後のイベント以外のすべてが含まれる。 (最後のイベントはヘルプ文字であると仮定する。)

つぎの2つの関数は、『エレクトリック』モードのように 制御を放棄せずにヘルプを提供したいモードのためです。 それらの名前は、普通のヘルプ関数と区別するために‘Helper’で始まります。

— コマンド: Helper-describe-bindings

このコマンドは、ローカルキーマップとグローバルキーマップの両者の すべてのキーバインディングの一覧を収めたヘルプバッファを表示した ウィンドウをポップアップする。 describe-bindingsを呼び出すことで動作する。

— コマンド: Helper-help

このコマンドはカレントモードについてのヘルプを提供する。 ミニバッファにおいて‘Help (Type ? for further options)’のメッセージで ユーザーに問い合わせ、キーバインディングの意味やモードの目的を 調べることを補佐する。 nilを返す。

このコマンドは、キーマップHelper-help-mapを 変更することでカスタマイズできる。

— Variable: data-directory

この変数は、Emacsとともに配布された特定の説明文やテキストファイルを Emacsが探すためのディレクトリの名前を保持する。 Emacsの古い版では、この目的にはexec-directoryを用いていた。

— 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がそれらの特殊イベントの1つを読み取ると、 スクロールしてつぎのイベントを読み取る。 読み取ったイベントが、扱えるものでなく、 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をエコー領域に表示し、 ユーザーがヘルプ文字を再度打った場合にのみより長い文字列を表示する。