次: High-Level Completion, 前: Minibuffer Completion, 上: Completion
本節では、補完を行うためにミニバッファで用いられるキーマップ、 コマンド、ユーザーオプションについて述べます。
completing-read
は、 補完候補の1つと完全に一致しなくてもよい場合に ローカルキーマップとしてこの値を使う。 デフォルトでは、このキーマップのバインディングはつぎのとおり。
- ?
minibuffer-completion-help
- <SPC>
minibuffer-complete-word
- <TAB>
minibuffer-complete
他の文字は
minibuffer-local-map
(see Text from Minibuffer)と同様にバインドされる。
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
と同様にバインドされる。
この変数の値は、ミニバッファでの補完に用いられる 連想リストやオブジェクト配列である。 これは、
completing-read
がtry-completion
に渡すものを 保持したグローバル変数である。minibuffer-complete-word
などの ミニバッファ補完コマンドで使用される。
この変数の値は、
completing-read
がtry-completion
へ渡す述語である。 この変数は、他のミニバッファ補完関数でも使われる。
この関数は、ミニバッファの内容を多くても1単語分補完する。 ミニバッファの内容に対応する補完がたった1つであっても、 単語構成文字ではない文字以降は補充しない。 see Syntax Tables。
この関数は、確認が必要でないとき、つまり、
minibuffer-completion-confirm
がnil
であるときには、 ミニバッファの内容を補完後に抜ける。 確認が必要であるときには、 このコマンドをただちに繰り返すことで確認をとる。 このコマンドは、連続して2回呼ばれると、 確認しないようにプログラムしてある。
この変数の値が
nil
以外の場合、 Emacsはミニバッファから抜けるまえに補完を確認してくる。 関数minibuffer-complete-and-exit
は、 抜けるまえにこの変数の値を検査する。
この関数は、ミニバッファの現在の内容に対する補完のリストを作る。 引数collectionとして変数
minibuffer-completion-table
の値を、 引数predicateとしてminibuffer-completion-predicate
の値を 用いてall-completions
を呼び出すことで動作する。 補完のリストは、`*Completions*'という名前のバッファに テキストとして表示される。
この関数は、通常はバッファであるストリーム
standard-output
に completionsを表示する。 (ストリームについては詳しくは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)))