本節では、ミニバッファで補完を行う際に使用されるキーマップ、コマンド、およびユーザーオプションについて説明します。
この変数の値は、ミニバッファでの補完に使用される補完テーブル(基本的な補完関数を参照)です。これは、completing-read が try-completion に渡す内容を保持するバッファローカル変数です。minibuffer-complete などのミニバッファ補完コマンドで使用されます。
この変数の値は、completing-read が try-completion に渡す述語です。また、この変数は他のミニバッファ補完関数でも使用されます。
この変数は、Emacsがミニバッファを終了する前に確認を求めるかどうかを決定します。completing-read はこの変数を設定し、関数 minibuffer-complete-and-exit は終了前にその値を確認します。値が nil の場合、確認は不要です。値が confirm
の場合、ユーザーは有効な補完候補ではない入力で終了できますが、Emacsは確認を求めます。値が confirm-after-completion
の場合、ユーザーは有効な補完候補ではない入力で終了できますが、ユーザーが minibuffer-confirm-exit-commands
のいずれかの補完コマンドの直後にその入力を入力した場合、Emacsは確認を求めます。
この変数には、completing-read の引数 require-match が confirm-after-completion である場合に、ミニバッファを抜ける前に Emacs
に確認を求めるコマンドのリストが格納されています。このリストにあるコマンドを実行した直後にユーザーがミニバッファを抜けようとした場合に、確認が求められます。
この関数は、ミニバッファの内容を最大1単語分補完します。ミニバッファの内容に補完候補が1つしかない場合でも、minibuffer-complete-word は単語構成要素ではない最初の文字以降に文字を追加しません。構文テーブルを参照してください。
この関数は、ミニバッファの内容を可能な限り補完します。
この関数はミニバッファの内容を補完し、確認が不要な場合(すなわち minibuffer-completion-confirm が nil である場合)は終了します。確認が必要な場合は、直ちにこのコマンドを再実行することで確認が行われます。なお、このコマンドは2回連続で実行された際に確認なしで動作するようにプログラムされています。
この関数は、現在のミニバッファの内容に対して考えられる補完候補のリストを作成します。具体的には、変数 minibuffer-completion-table の値を collection 引数として、minibuffer-completion-predicate の値を predicate 引数として all-completions
を呼び出すことで動作します。補完候補のリストは、*Completions*
という名前のバッファにテキストとして表示されます。
この関数は、standard-output(通常はバッファ)内のストリームにcompletionsを出力します。(ストリームの詳細については、Lispオブジェクトの読み込みと出力を参照してください。)引数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)))
この変数が nil
以外の場合、次の文字が一意に定まらずに補完できないときは、補完コマンドが候補の一覧を自動的に表示します。
completing-read
は、補完候補のいずれかとの完全一致が不要な場合に、この値をローカルキーマップとして使用します。デフォルトでは、このキーマップにより以下のバインドが設定されます:
minibuffer-completion-help
minibuffer-complete-word
minibuffer-complete
また、親キーマップとして minibuffer-local-map を使用します(minibuffer-local-map
の定義 を参照)。
completing-read
は、補完候補のいずれかと完全一致する必要がある場合に、この値をローカルキーマップとして使用します。したがって、ミニバッファを無条件に終了させるコマンドである
exit-minibuffer
には、いかなるキーも割り当てられていません。デフォルトでは、このキーマップにより以下のバインドが設定されます:
minibuffer-complete-and-exit
minibuffer-complete-and-exit
また、minibuffer-local-completion-mapを親キーマップとして使用します。
これは単に SPC
のバインドを解除するだけのシンプルなキーマップです。ファイル名にスペースが含まれる可能性があるためです。関数 read-file-name は、このキーマップを minibuffer-local-completion-map または minibuffer-local-must-match-map のいずれかと組み合わせます。
nil 以外の場合、ポイントがプロンプトの末尾より後にあるときは、M-<
コマンドはプロンプトの末尾に移動します。ポイントがプロンプトの末尾またはそれ以前にあるときは、バッファの先頭に移動します。この変数が nil の場合、コマンドは beginning-of-buffer と同様に動作します。