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
の振る舞いを完全にオーバーライドすることができる。