Next: , Previous: , Up: Minibuffers   [Contents][Index]


19.5 Initial Input

ミニバッファー入力にたいする関数のいくつかには、initialと呼ばれる引数があります。これは通常のように空の状態で開始されるのではなく、特定のテキストとともにミニバッファーが開始されることを指定しますが、ほとんどの場合において推奨されない機能です。

initialが文字列の場合、ミニバッファーはその文字列のテキストを含む状態で開始され、ユーザーがそのテキストの編集を開始するとき、ポイントはテキストの終端にあります。ユーザーがミニバッファーをexitするために単にRETをタイプした場合には、この入力文字列の初期値をリターン値だと判断します。

initialにたいして非nil値の使用には反対します。なぜなら初期入力は強要的なインターフェイスだからです。ユーザーにたいして有用なデフォルト入力を提案するためには、ヒストリーリストやデフォルト値の提供のほうが、より便利です。

しかしinitial引数にたいして文字列を指定すべき状況が1つだけあります。それは、history引数にコンスセルを指定したときです。Minibuffer Historyを参照してください。

initial(string . position)という形式をとることもできます。これはstringをミニバッファーに挿入するが、その文字列のテキスト中のpositionにポイントを配するという意味です。

歴史的な経緯により、positionは異なる関数において実装が統一されていません。completing-readではpositionの値は0基準です。つまり、値0は文字列の先頭で、1は最初の文字の次、...を意味します。しかしread-minibuffer、およびこの引数をサポートする補完を行わない他のミニバッファー入力関数では、1は文字列の先頭、2は最初の文字の次、...を意味します。

initialの値としてのコンスセルの使用は、推奨されません。