Next: 高レベルの補完関数, Previous: 補完とミニバッファー, Up: 補完 [Contents][Index]
このセクションでは補完のためにミニバッファーで使用されるキーマップ、コマンド、ユーザーオプションを説明します。
この変数の値はミニバッファー内の補完に使用される補完テーブル(基本的な補完関数を参照)。これはcompleting-read
がtry-completion
に渡す補完テーブルを含むバッファーローカル変数。minibuffer-complete
のようなミニバッファー補完コマンドにより使用される。
この変数の値はcompleting-read
がtry-completion
に渡す述語(predicate)である。この変数は他のミニバッファー補完関数にも使用される。
この変数はミニバッファーをexitする前にEmacsが確認を求めるかどうかを決定する。completing-read
はこの変数をセットして、exitする前に関数minibuffer-complete-and-exit
がこの値をチェックする。値がnil
なら確認は求められない。値がconfirm
の場合は、入力が有効な補完候補でなくてもユーザーはexitするかもしれないがEmacsは確認を求めない。値がconfirm-after-completion
の場合、入力が有効な補完候補でなくてもユーザーはexitするかもしれないが、ユーザーがminibuffer-confirm-exit-commands
内の任意の補完コマンドの直後に入力を確定した場合にはEmacsは確認を求める。
この変数には、completing-read
の引数require-matchがconfirm-after-completion
のときにミニバッファーexit前にEmacsに確認を求めさせるコマンドのリストが保持されている。このリスト内のコマンドを呼び出した直後にユーザーがミニバッファーのexitを試みるとEmacsは確認を求める。
この関数はせいぜい1つの単語からミニバッファーを補完する。たとえミニバッファーのコンテンツが1つの補完しかもたない場合でも、minibuffer-complete-word
はその単語に属さない最初の文字を超えた追加はしない。構文テーブルを参照のこと。
この関数は可能な限りミニバッファーのコンテンツを補完する。
この関数はミニバッファーのコンテンツを補完して確認が要求されない場合(たとえばminibuffer-completion-confirm
がnil
のとき)はexitする。確認が要求される場合には、このコマンドを即座に繰り返すことによって確認が行われないようにする。このコマンドは2回連続で実行された場合は確認なしで機能するようにプログラムされている。
この関数はカレントのミニバッファーのコンテンツで利用可能な補完のリストを作成する。これはall-completions
の引数collectionに変数minibuffer-completion-table
の値、引数predicateにminibuffer-completion-predicate
の値を使用して呼び出すことによって機能する。補完リストは*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
の値は、補完の1つが完全に一致することを要求されないときにローカルキーマップとして使用される。デフォルトではこのキーマップは以下のバインディングを作成する:
minibuffer-completion-help
minibuffer-complete-word
minibuffer-complete
親キーマップとしてminibuffer-local-map
を使用する(Definition of
minibuffer-local-mapを参照)。
completing-read
は、1つの補完の完全な一致が要求されないときのローカルキーマップとしてこの値を使用する。したがってexit-minibuffer
にキーがバインドされていなければ、無条件にミニバッファーをexitする。デフォルトでは、このキーマップは以下のバインディングを作成する:
minibuffer-complete-and-exit
minibuffer-complete-and-exit
親キーマップはminibuffer-local-completion-map
を使用する。
これは単にSPCを非バインドするsparseキーマップ(sparse:
疎、希薄、まばら)を作成する。これはファイル名にスペースを含めることができるからである。関数read-file-name
は、このキーマップとminibuffer-local-completion-map
かminibuffer-local-must-match-map
のいずれかを組み合わせる。
非nil
の場合には、M-<コマンドはポイントがプロンプト終端の後ならポイントをプロンプト終端に移動する。ポイントがプロンプト終端またはプロンプト終端より前ならバッファーの先頭に移動する。この変数がnil
ならM-<はbeginning-of-buffer
のように振る舞う。