Next: , Previous: , Up: Completion   [Contents][Index]


20.6.3 補完を行うミニバッファーコマンド

このセクションでは補完のためにミニバッファーで使用されるキーマップ、コマンド、ユーザーオプションを説明します。

Variable: minibuffer-completion-table

この変数の値はミニバッファー内の補完に使用される補完テーブル(Basic Completionを参照)。これはcompleting-readtry-completionに渡す補完テーブルを含むグローバル変数。minibuffer-complete-wordのようなミニバッファー補完コマンドにより使用される。

Variable: minibuffer-completion-predicate

この変数の値はcompleting-readtry-completionに渡す述語(predicate)である。この変数は他のミニバッファー補完関数にも使用される。

Variable: minibuffer-completion-confirm

この変数はミニバッファーをexitする前にEmacsが確認を求めるかどうかを決定する。completing-readはこの変数をバインドして、exitする前に関数minibuffer-complete-and-exitがこの値をチェックする。値がnilなら確認は求められない。値がconfirmの場合は、入力が有効な補完候補でなくてもユーザーはexitするかもしれないがEmacsは確認を求めない。値がconfirm-after-completionの場合、入力が有効な補完候補でなくてもユーザーはexitするかもしれないが、ユーザーがminibuffer-confirm-exit-commands内の任意の補完コマンドの直後に入力を確定した場合にはEmacsは確認を求める。

Variable: minibuffer-confirm-exit-commands

この変数には、completing-readの引数require-matchconfirm-after-completionのときにミニバッファーexit前にEmacsに確認を求めさせるコマンドのリストが保持されている。このリスト内のコマンドを呼び出した直後にユーザーがミニバッファーのexitを試みるとEmacsは確認を求める。

Command: minibuffer-complete-word

この関数はせいぜい1つの単語からミニバッファーを補完する。たとえミニバッファーのコンテンツが1つの補完しかもたない場合でも、minibuffer-complete-wordはその単語に属さない最初の文字を超えた追加はしない。Syntax Tablesを参照のこと。

Command: minibuffer-complete

この関数は可能な限りミニバッファーのコンテンツを補完する。

Command: minibuffer-complete-and-exit

この関数はミニバッファーのコンテンツを補完して確認が要求されない場合(たとえばminibuffer-completion-confirmnilのとき)はexitする。確認が要求される場合には、このコマンドを即座に繰り返すことによって確認が行われないようにする。このコマンドは2回連続で実行された場合は確認なしで機能するようにプログラムされている。

Command: minibuffer-completion-help

この関数はカレントのミニバッファーのコンテンツで利用可能な補完のリストを作成する。これはall-completionsの引数collectionに変数minibuffer-completion-tableの値、引数predicateminibuffer-completion-predicateの値を使用して呼び出すことによって機能する。補完リストは*Completions*と呼ばれるバッファーのテキストとして表示される。

Function: display-completion-list completions

この関数はstandard-output内のストリーム(通常はバッファー)にcompletionsを表示する(ストリームについての詳細はRead and Printを参照)。引数completionsは通常はall-completionsがリターンする補完リストそのものだが、そうである必要はない。要素はシンボルか文字列で、どちらも単にプリントされる。文字列2つのリストでもよく、2つの文字列が結合されたかのようにプリントされる。この場合、1つ目の文字列は実際の補完で、2つ目の文字列は注釈の役目を負う。

この関数はminibuffer-completion-helpより呼び出される。一般的には以下のようにwith-output-to-temp-bufferとともに使用される。

(with-output-to-temp-buffer "*Completions*"
  (display-completion-list
    (all-completions (buffer-string) my-alist)))
User Option: completion-auto-help

この変数が非nilなら、次の文字が一意でなく決定できないために補完が完了しないときは常に、補完コマンドは利用可能な補完リストを自動的に表示する。

Variable: minibuffer-local-completion-map

completing-readの値は、補完の1つが完全に一致することを要求されないときにローカルキーマップとして使用される。デフォルトではこのキーマップは以下のバインディングを作成する:

?

minibuffer-completion-help

SPC

minibuffer-complete-word

TAB

minibuffer-complete

親キーマップとしてminibuffer-local-mapを使用する(Definition of minibuffer-local-mapを参照)。

Variable: minibuffer-local-must-match-map

completing-readは、1つの補完の完全な一致が要求されないときのローカルキーマップとしてこの値を使用する。したがってexit-minibufferにキーがバインドされていなければ、無条件にミニバッファーをexitする。デフォルトでは、このキーマップは以下のバインディングを作成する:

C-j

minibuffer-complete-and-exit

RET

minibuffer-complete-and-exit

親キーマップはminibuffer-local-completion-mapを使用する。

Variable: minibuffer-local-filename-completion-map

これは単にSPCを非バインドするsparseキーマップ(sparse: 疎、希薄、まばら)を作成する。これはファイル名にスペースを含めることができるからである。関数read-file-nameは、このキーマップとminibuffer-local-completion-mapminibuffer-local-must-match-mapのいずれかを組み合わせる。