Emacsにはさまざまオンラインヘルプ関数があり、 それらはすべてプレフィックスC-hのサブコマンドとして使えます。 それらについて詳しくは、 ヘルプ機能を参照してください。 ここでは、同じ情報を得るプログラムレベルのインターフェイスを説明します。
この関数は、正規表現regexpに一致する名前を持つすべてのシンボルを探し、 それらのリストを返す(see Regular Expressions)。 さらに、バッファ‘*Help*’に、各シンボルについて、 シンボルとその説明文字列の始めの部分から取り出した1行の説明文を表示する。
do-allが
nil
以外であると、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)
このシンボルは関数ではない。 その関数定義セルは、
help-map
として知られるキーマップを保持している。 help.elでの定義はつぎのとおりである。(define-key global-map "\C-h" 'help-command) (fset 'help-command help-map)
この関数は、ヘルプコマンドのあとでそれ以前のウィンドウの状態に復元する 方法を述べた文字列を作成する。 メッセージを作成後、functionが
nil
以外であれば、 メッセージをfunctionに適用する。 さもなければ、メッセージをエコー領域に表示するためにmessage
を呼び出す。この関数は、スペシャルフォーム
with-output-to-temp-buffer
の 中から呼び出され、しかも、 当該スペシャルフォームでstandard-output
に値が束縛されているものと 仮定する。 使用例については、Accessing Documentationの長い例を参照。
この変数の値はヘルプ文字、つまり、 Emacsがヘルプを意味すると認識する文字である。 デフォルトでは、その値はC-hを表す8である。
help-form
がnil
以外のLisp式であると、 Emacsがこの文字を読み取るとその式を評価し、 その結果が文字列であれば結果をウィンドウに表示する。通常、
help-form
の値はnil
である。 そうすると、ヘルプ文字にはコマンド入力のレベルでは特別な意味はなく、 普通の意味でのキー列の一部になる。 C-hの標準のキーバインディングは、 いくつかの汎用目的のヘルプ機能向けのプレフィックスキーである。ヘルプ文字は、プレフィックスキーのうしろでも特別である。 プレフィックスのサブコマンドとしてのバインディングがないと、 プレフィックスキーのすべてのサブコマンドの一覧を表示する
describe-prefix-bindings
を実行する。
この変数の値は、別の『ヘルプ文字』として動作するイベント型のリストである。 これらのイベントは
help-char
で指定されたイベントと まったく同様に扱われる。
この変数が
nil
以外であると、その値は、help-char
を読むたびに評価すべきフォームである。 フォームを評価すると文字列を生成すれば、その文字列が表示される。
read-event
やread-char
を呼ぶコマンドは、 入力中にはhelp-form
をnil
以外に(たぶん)束縛すべきである。 (C-hに別の意味がある場合には、こうしないこと。) この式の評価結果は、なんのための入力でどのように入力すべきかを 説明する文字列であること。ミニバッファに入ると、この変数は
minibuffer-help-form
(see Minibuffer Misc)の値に束縛される。
この変数はプレフィックスキーに対するヘルプを表示する関数を保持する。 ユーザーがプレフィックスキーに続けてヘルプ文字や 当該プレフィックスのあとではバインディングを持たない文字を打つと その関数が呼ばれる。 この変数のデフォルト値は
describe-prefix-bindings
である。
この関数は、もっとも最近のキー列のプレフィックスキーの すべてのサブコマンドの一覧を表示するために
describe-bindings
を呼び出す。 プレフィックスの説明には、当該キー列の最後のイベント以外のすべてが含まれる。 (最後のイベントはヘルプ文字であると仮定する。)
つぎの2つの関数は、『エレクトリック』モードのように 制御を放棄せずにヘルプを提供したいモードのためです。 それらの名前は、普通のヘルプ関数と区別するために‘Helper’で始まります。
このコマンドは、ローカルキーマップとグローバルキーマップの両者の すべてのキーバインディングの一覧を収めたヘルプバッファを表示した ウィンドウをポップアップする。
describe-bindings
を呼び出すことで動作する。
このコマンドはカレントモードについてのヘルプを提供する。 ミニバッファにおいて‘Help (Type ? for further options)’のメッセージで ユーザーに問い合わせ、キーバインディングの意味やモードの目的を 調べることを補佐する。
nil
を返す。このコマンドは、キーマップ
Helper-help-map
を 変更することでカスタマイズできる。
この変数は、Emacsとともに配布された特定の説明文やテキストファイルを Emacsが探すためのディレクトリの名前を保持する。 Emacsの古い版では、この目的には
exec-directory
を用いていた。
このマクロは、サブコマンドの一覧を表示するプレフィックスキーのように 動作する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-help
をt
に 設定してある場合にのみ使われる。このマクロは、C-h C-hのバインディングである コマンド
help-for-help
で使われている。