Next: ファイル名の読み取り, Previous: 補完を行うミニバッファーコマンド, Up: 補完 [Contents][Index]
このセクションでは特定の種類の名前を補完つきで読み取る便利な高レベル関数を説明します。
ほとんどの場合は、Lisp関数の中盤でこれらの関数を呼び出すべきではありません。可能なときはinteractive
指定の内部で呼び出して、ミニバッファーのすべての入力をコマンドの引数読み取りの一部にします。コマンドの定義を参照してください。
この関数はバッファーの名前を読み取ってそれを文字列でリターンする。プロンプトはprompt。引数defaultはミニバッファーが空の状態でユーザーがexitした場合にリターンされるデフォルト名として使用される。非nil
なら文字列、文字列リスト、またはバッファーを指定する。リストならリストの先頭の要素がデフォルト値になる。デフォルト値はプロンプトに示されるが、初期入力としてミニバッファーには挿入されない。
引数promptはコロンかスペースで終わる文字列である。defaultが非nil
なら、この関数はデフォルト値つきでミニバッファーから読み取る際の慣習にしたがってコロンの前のpromptの中にこれを挿入する。
オプション引数require-matchはcompleting-read
のときと同じ。補完とミニバッファーを参照のこと。
オプション引数predicateが非nil
なら、それは考慮すべきバッファーをフィルターする関数を指定する。この関数は可能性のある候補を引数として呼び出されて、候補を拒絶するならnil
、許容するなら非nil
をリターンすること。
以下の例ではユーザーが‘minibuffer.t’とエンターしてから、RETをタイプしている。引数require-matchはt
であり、与えられた入力で始まるバッファー名は‘minibuffer.texi’だけなので、その名前が値となる。
(read-buffer "Buffer name: " "foo" t)
;; 前の式を評価した後、 ;; 空のミニバッファーに ;; 以下のプロンプトが表示される:
---------- Buffer: Minibuffer ---------- Buffer name (default foo): ∗ ---------- Buffer: Minibuffer ----------
;; ユーザーがminibuffer.t RETとタイプする
⇒ "minibuffer.texi"
この変数が非nil
なら、それはバッファー名を読み取る関数を指定する。read-buffer
は通常行うことを行うかわりに、read-buffer
と同じ引数でその関数を呼び出す。
この変数が非non-nil
なら、バッファー名の読み取りの補完処理においてread-buffer
はcaseを無視する。
この関数はコマンドの名前を読み取って、Lispシンボルとしてそれをリターンする。引数promptはread-from-minibuffer
で使用される場合と同じ。それが何であれcommandp
がt
をリターンすればコマンドであり、コマンド名とはcommandp
がt
をリターンするシンボルだということを思い出してほしい。インタラクティブな呼び出しを参照のこと。
引数defaultはユーザーがnull入力をエンターした場合に何をリターンするか指定する。シンボル、文字列、文字列リストを指定できる。文字列ならread-command
はリターンする前にそれをinternする。リストならread-command
はリストの最初の要素をinternする。defaultがnil
ならデフォルトが指定されなかったことを意味する。その場合には、もしユーザーがnull入力をエンターするとリターン値は(intern
"")
、つまり名前が空文字列でプリント表現が##
であるようなシンボル(シンボル型を参照)。
(read-command "Command name? ")
;; 前の式を評価した後に、 ;; 空のミニバッファーに以下のプロンプトが表示される:
---------- Buffer: Minibuffer ---------- Command name? ---------- Buffer: Minibuffer ----------
ユーザーがforward-c RETとタイプすると、この関数はforward-char
をリターンする。
read-command
関数はcompleting-read
の簡略化されたインターフェイスである。実在するLisp変数のセットを補完するために変数obarray
、コマンド名だけを受け入れるために述語commandp
を使用する。
(read-command prompt) ≡ (intern (completing-read prompt obarray 'commandp t nil))
この変数はカスタマイズ可能な変数の名前を読み取って、それをシンボルとしてリターンする。引数の形式はread-command
の引数と同じ。この関数はcommandp
のかわりにcustom-variable-p
を述語に使用する点を除いてread-command
と同様に振る舞う。
この関数はカラー指定(カラー名、または#RRRGGGBBB
のような形式のRGB16進値)の文字列を読み取る。これはプロンプトにprompt(デフォルトは"Color
(name or #RGB
triplet):"
)を表示して、カラー名にたいする補完を提供する(16進RGB値は補完しない)。標準的なカラー名に加えて、補完候補にはポイント位置のフォアグラウンドカラーとバックグラウンドカラーが含まれる。
Valid RGB values are described in カラー名.
この関数のリターン値はミニバッファー内でユーザーがタイプした文字列である。しかしインタラクティブに呼び出されたとき、またはオプション引数convertが非nil
なら、入力されたカラー名のかわりにそれに対応するRGB値文字列をリターンする。この関数は入力として有効なカラー指定を求める。allow-emptyが非nil
でユーザーがnull入力をエンターした場合は空のカラー名が許容される。
インタラクティブに呼び出されたとき、またはdisplayが非nil
なら、エコーエリアにもリターン値が表示される。
ユーザーが選択したコーディングシステムの関数read-coding-system
とread-non-nil-coding-system
、および入力メソッドのread-input-method-name
も参照されたい。