Next: Completion Commands, Previous: Basic Completion, Up: Completion [Contents][Index]
このセクションでは、補完つきでミニバッファーから読み取るための、基本的なインターフェイスを説明します。
この関数は、補完の提供によりユーザーを支援して、ミニバッファーから文字列を読み取る。prompt(文字列でなければならない)のプロンプトとともに、ミニバッファーをアクティブ化する。
実際の補完は、補完テーブルcollectionと補完述語predicateを関数try-completion(Basic Completionを参照)に渡すことにより行われる。これは補完の使用されるローカルキーマップに特定のコマンドをバインドしたとき発生する。これらのコマンドのいくつかは、test-completionも呼び出す。したがって、predicateが非nilの場合は、collectionとcompletion-ignore-caseが矛盾しないようにすべきである。Definition of test-completionを参照のこと。
オプション引数require-matchの値は、ユーザーがミニバッファーをexitする方法を決定する。
nilの場合、通常のミニバッファーexitコマンドは、ミニバッファーの入力と無関係に機能する。
tの場合は、入力がcollectionの要素に補完されるまで、通常のミニバッファーexitコマンドは機能しない。
confirmの場合、どのような入力でもユーザーはexitできるが、入力がconfirmの要素に補完されていなければ、確認を求められる。
confirm-after-completionの場合、どのような入力でもユーザーはexitできるが、前のコマンドが補完コマンド(たとえばminibuffer-confirm-exit-commandsの中のコマンドの1つの場合)で、入力の結果がcollectionの要素でない場合は、確認を求められる。Completion Commandsを参照のこと。
tと同じふぁが、exitコマンドは補完処理中はexitしない。
しかし、require-matchの値に関わらず、空の入力は常に許される。この場合、completing-readはdefaultがリストなら最初の要素、defaultがnilなら""、またはdefaultをリターンする。文字列およびdefault内の文字列は、ヒストリーコマンドを通じてユーザーが利用できる。
関数completing-readはrequire-matchがnilの場合はキーマップとしてminibuffer-local-completion-mapを、require-matchが非nilの場合はminibuffer-local-must-match-mapを使用する。Completion Commandsを参照のこと。
引数historyは入力の保存とミニバッファーヒストリーコマンドに、どのヒストリーリスト変数を使用するか指定する。デフォルトはminibuffer-history。Minibuffer Historyを参照のこと。
initialは、ほとんどの場合推奨されない。historyにたいするコンスセル指定と組み合わせた場合のみ、非nil値の使用を推奨する。Initial Inputを参照のこと。デフォルト入力にたいしては、かわりにdefaultを使用する。
引数inherit-input-methodが非nilの場合には、ミニバッファーにエンターする前にカレントだったバッファーが何であれ、カレントのインプットメソッド(Input Methodsを参照)、およびenable-multibyte-charactersのセッティング(Text Representationsを参照)が継承される。
変数completion-ignore-caseが非nilの場合、利用可能なマッチにたいして入力を比較するときの補完は、大文字小文字を区別しない。Basic Completionを参照のこと。このモードでの操作では、predicateも大文字小文字を区別してはならない(さもないと驚くべき結果となるであろう)。
以下はcompleting-readを使用した例である:
(completing-read
"Complete a foo: "
'(("foobar1" 1) ("barfoo" 2) ("foobaz" 3) ("foobar2" 4))
nil t "fo")
;; 前の式を評価後に、 ;; ミニバッファーに以下が表示される。: ---------- Buffer: Minibuffer ---------- Complete a foo: fo∗ ---------- Buffer: Minibuffer ----------
その後ユーザーがDEL DEL b
RETをタイプすると、completing-readはbarfooをリターンする。
completing-read関数は、実際に補完を行うコマンドの情報を渡すために、変数をバインドする。これらの変数は、以降のセクションで説明する。
この変数の値は関数でなければならず、補完つきの読み取りを実際に行うためにcompleting-readから呼び出される。この関数はcompleting-readと同じ引数を受け入れる。他の関数のバインドして、通常のcompleting-readの振る舞いを完全にオーバーライドすることができる。