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


19.6.3 Minibuffer Commands that Do Completion

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

Variable: minibuffer-completion-table

この変数の値は、ミニバッファー内の補完に使用される補完テーブルである。これは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のいずれかを組み合わせる。