ミニバッファ入力用の関数のいくつかには、initial という引数があります。これは、ミニバッファを通常の空の状態ではなく、特定のテキストで開始するように指定するための、ほぼ非推奨の機能です。
initial が文字列の場合、ユーザーがテキストの編集を開始すると、ミニバッファにはその文字列の内容が含まれ、ポイントは末尾に配置された状態で始まります。ユーザーが単に RET と入力してミニバッファを終了した場合、初期入力文字列を用いて返すべき値が決定されます。
initial に nil
以外の値を使用することは推奨しません。初期入力は干渉的なインターフェースとなるためです。履歴リストやデフォルト値を利用すれば、ユーザーに有用なデフォルト入力をより簡便に提供できます。
initial 引数に文字列を指定すべき状況は、たった一つしかありません。それは、history 引数にコンスセルを指定する場合です。ミニバッファ履歴を参照してください。
initial は、(string . position) という形式の
cons セルである場合もあります。これは、ミニバッファに string
を挿入しつつ、ポイントを文字列のテキスト内の position に置くことを意味します。
歴史的な経緯により、position は関数によって実装が統一されていませんでした。completing-read では、position
の値は原点ゼロとして解釈されます。つまり、値が 0 であれば文字列の先頭、1 であれば最初の文字の後、といった具合になります。read-minibuffer およびこの引数をサポートするその他の非補完ミニバッファ入力関数では、1
が文字列の先頭、2 が最初の文字の後、といった具合になります。
initial 引数の値として cons セルを使用することは非推奨となっています。