Next: , Previous: Minibuffer Completion, Up: Completion


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

本節では、補完を行うためにミニバッファで用いられるキーマップ、 コマンド、ユーザーオプションについて述べます。

— Variable: minibuffer-local-completion-map

completing-readは、 補完候補の1つと完全に一致しなくてもよい場合に ローカルキーマップとしてこの値を使う。 デフォルトでは、このキーマップのバインディングはつぎのとおり。

?
minibuffer-completion-help
<SPC>
minibuffer-complete-word
<TAB>
minibuffer-complete

他の文字はminibuffer-local-map (see Text from Minibuffer)と同様にバインドされる。

— Variable: minibuffer-local-must-match-map

completing-readは、 補完候補の1つと完全に一致する必要がある場合に ローカルキーマップとしてこの値を使う。 そのため、ミニバッファから無条件に抜けるコマンドexit-minibufferに バインドしたキーはない。 デフォルトでは、このキーマップのバインディングはつぎのとおり。

?
minibuffer-completion-help
<SPC>
minibuffer-complete-word
<TAB>
minibuffer-complete
C-j
minibuffer-complete-and-exit
<RET>
minibuffer-complete-and-exit

他の文字はminibuffer-local-mapと同様にバインドされる。

— Variable: minibuffer-completion-table

この変数の値は、ミニバッファでの補完に用いられる 連想リストやオブジェクト配列である。 これは、completing-readtry-completionに渡すものを 保持したグローバル変数である。 minibuffer-complete-wordなどの ミニバッファ補完コマンドで使用される。

— Variable: minibuffer-completion-predicate

この変数の値は、completing-readtry-completionへ渡す述語である。 この変数は、他のミニバッファ補完関数でも使われる。

— コマンド: minibuffer-complete-word

この関数は、ミニバッファの内容を多くても1単語分補完する。 ミニバッファの内容に対応する補完がたった1つであっても、 単語構成文字ではない文字以降は補充しない。 see Syntax Tables

— コマンド: minibuffer-complete

この関数は、ミニバッファの内容を可能な限り補完する。

— コマンド: minibuffer-complete-and-exit

この関数は、確認が必要でないとき、つまり、 minibuffer-completion-confirmnilであるときには、 ミニバッファの内容を補完後に抜ける。 確認が必要であるときには、 このコマンドをただちに繰り返すことで確認をとる。 このコマンドは、連続して2回呼ばれると、 確認しないようにプログラムしてある。

— Variable: minibuffer-completion-confirm

この変数の値がnil以外の場合、 Emacsはミニバッファから抜けるまえに補完を確認してくる。 関数minibuffer-complete-and-exitは、 抜けるまえにこの変数の値を検査する。

— コマンド: minibuffer-completion-help

この関数は、ミニバッファの現在の内容に対する補完のリストを作る。 引数collectionとして変数minibuffer-completion-tableの値を、 引数predicateとしてminibuffer-completion-predicateの値を 用いてall-completionsを呼び出すことで動作する。 補完のリストは、‘*Completions*’という名前のバッファに テキストとして表示される。

— Function: display-completion-list completions

この関数は、通常はバッファであるストリームstandard-outputcompletionsを表示する。 (ストリームについては詳しくはsee Read and Print。) 引数completionsは、普通は、all-completionsが 返した補完のリストであるが、そうでなくてもよい。 各要素は、シンボルか文字列であり、その場合、そのまま表示される。 各要素が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以外であると、 つぎの補充文字が一意に決まらない場合には、 自動的に補完のリストを表示する。