GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Help-Functions.html ・ emacs-doc.conao3.com

25.6 ヘルプ関数

Emacsには多彩な組み込みヘルプ機能が用意されており、いずれもプレフィックス C-h のサブコマンドとしてユーザーが利用できます。これらの詳細については、The GNU Emacs Manual の Help を参照してください。ここでは、同じ情報にアクセスするためのプログラムレベルのインターフェースをいくつか説明します。

コマンド: apropos pattern &optional do-all

この関数は、名称に apropos パターン pattern に一致する文字列を含む、すべての意味のあるシンボルを検索します。apropos パターンとは、照合対象の単語、少なくとも2つが一致する必要があるスペース区切りの単語リスト、または正規表現(特殊な正規表現文字が含まれる場合)のいずれかです。シンボルは、関数、変数、または face としての定義を持つか、あるいはプロパティを持つ場合に「意味がある」とみなされます。

この関数は、次のような要素のリストを返します:

(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 は見つかった関数のキーバインドも表示します。また、意味のあるシンボルだけでなく、すべてのインターニング済みシンボルも表示します(そして、それらを戻り値にも列挙します)。

変数: help-map

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

接頭辞コマンド: help-command

このシンボルは関数ではなく、その関数定義セルには help-map というキーマップが格納されています。 help.el では次のように定義されています。

(keymap-set global-map (key-description (string help-char)) 'help-command)
(fset 'help-command help-map)
ユーザーオプション: help-char

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

通常、help-form の値は nil となります。この場合、ヘルプ文字はコマンド入力レベルでは特別な意味を持たず、通常通りキーシーケンスの一部となります。C-h の標準的なキーバインドは、いくつかの汎用的なヘルプ機能のプレフィックスキーとなっています。

ヘルプ文字は、プレフィックスキーの後でも特別な扱いとなります。プレフィックスキーのサブコマンドとして割り当てられていない場合は、プレフィックスキーのすべてのサブコマンド一覧を表示する describe-prefix-bindings が実行されます。

ユーザーオプション: help-event-list

この変数の値は、代替ヘルプ文字として機能するイベントタイプのリストです。これらのイベントは、help-char で指定されたイベントと同様に処理されます。

変数: help-form

この変数が nil 以外の場合、その値は文字 help-char が読み込まれた際に評価されるフォームとなります。そのフォームを評価して文字列が生成された場合、その文字列が表示されます。

read-event、read-char-choice、read-char、read-char-from-minibuffer、またはy-or-n-pを呼び出すコマンドは、入力処理を行う間、help-formをnil以外の式にバインドすべきでしょう。(これを避けるべきなのは、C-hが別の意味を持つ場合です。)この式を評価すると、入力内容とその正しい入力方法を説明する文字列が生成されるはずです。

ミニバッファへの入力により、この変数は minibuffer-help-form の値にバインドされます(minibuffer-help-form の定義を参照)。

変数: prefix-help-command

この変数には、プレフィックスキーのヘルプを表示する関数が格納されています。ユーザーがプレフィックスキーに続いてヘルプ文字を入力し、かつそのヘルプ文字がそのプレフィックスに対してバインドされていない場合に、この関数が呼び出されます。この変数のデフォルト値は describe-prefix-bindings です。

コマンド: describe-prefix-bindings

この関数は describe-bindings を呼び出して、直近のキーシーケンスのプレフィックスキーに属するすべてのサブコマンドの一覧を表示します。ここでのプレフィックスとは、そのキーシーケンスの最後のイベントを除くすべてのイベントで構成されます。(最後のイベントは、おそらくヘルプ文字です。)

以下の2つの関数は、電気モードのように、制御権を手放すことなくヘルプを提供したいモード向けに用意されています。通常のヘルプ関数と区別するため、名称は ‘Helper’ で始まっています。

コマンド: Helper-describe-bindings

このコマンドを実行すると、ローカルおよびグローバルの両方のキーマップに含まれるすべてのキーバインドの一覧が表示されたヘルプバッファのウィンドウがポップアップします。これは describe-bindings を呼び出すことで動作します。

コマンド: Helper-help

このコマンドは、現在のモードに関するヘルプを提供します。ミニバッファに ‘Help (Type ? for further options)’ というメッセージを表示し、キーバインドの内容やそのモードの用途を確認できるよう支援します。戻り値は nil です。

これはマップ Helper-help-map を変更することでカスタマイズ可能です。

変数: data-directory

この変数には、Emacsが特定のドキュメントやEmacsに付属するテキストファイルを探し出すディレクトリ名が格納されています。

関数: help-buffer

この関数は、通常は *Help* となるヘルプバッファの名前を返します。そのようなバッファが存在しない場合は、まず作成されます。

マクロ: with-help-window buffer-or-name body…

このマクロは body を with-output-to-temp-buffer と同様に評価し(一時表示 を参照)、そのフォームによって生成された出力を、バッファまたはバッファ名として指定可能な buffer-or-name で指定されたバッファに挿入します。(多くの場合、buffer-or-name は関数 help-buffer が返す値となります。)このマクロは、指定されたバッファをヘルプモードにし、ヘルプウィンドウの終了方法やスクロール方法をユーザーに知らせるメッセージを表示します。ユーザーオプション help-window-select の現在の値が適切に設定されている場合は、ヘルプウィンドウを選択します。また、body の直前の値を返します。

関数: help-setup-xref item interactive-p

この関数は、ユーザーが‘Back’または‘Forward’ボタンをクリックした際にヘルプ情報を再生成するために使用される*Help*バッファ内の相互参照データを更新します。*Help*バッファを使用するほとんどのコマンドは、バッファをクリアする前にこの関数を呼び出す必要があります。item引数は(function . args)の形式である必要があり、ここでfunctionはヘルプバッファを再生成するために呼び出す関数、argsはその引数リストとなります。呼び出し元のコマンドが対話的に実行された場合、interactive-p引数はnon-nilとなります。その場合、*Help*バッファの‘Back’ボタン用のアイテムスタックがクリアされます。

help-buffer、with-help-window、help-setup-xrefの使用例については、describe-symbols の例を参照してください。

マクロ: 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-help を t に設定した場合にのみ使用されます。

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

ユーザーオプション: three-step-help

この変数が nil 以外の場合、make-help-screen で定義されたコマンドは、まずエコー領域に help-line 文字列を表示し、ユーザーが再度ヘルプ文字を入力した場合にのみ、より長い help-text 文字列を表示します。