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


20.3 ミニバッファーでのLispオブジェクトの読み取り

このセクションではミニバッファーでLispオブジェクトを読み取る関数を説明します。

Function: read-minibuffer prompt &optional initial

この関数はミニバッファーを使用してLispオブジェクトを読み取って、それを評価せずにリターンする。引数promptinitialread-from-minibufferのときと同様に使用する。

これはread-from-minibuffer関数にたいする簡略化されたインターフェイスである。

(read-minibuffer prompt initial)
≡
(let (minibuffer-allow-text-properties)
  (read-from-minibuffer prompt initial nil t))

以下の例では初期入力として文字列"(testing)"を与えている:

(read-minibuffer
 "Enter an expression: " (format "%s" '(testing)))

;; 以下はミニバッファーでの表示:

---------- Buffer: Minibuffer ----------
Enter an expression: (testing)∗
---------- Buffer: Minibuffer ----------

ユーザーはRETをタイプして初期入力をデフォルトとして利用したり入力を編集することができる。

Function: eval-minibuffer prompt &optional initial

この関数はミニバッファーを使用してLisp式を読み取り、それを評価して結果をリターンする。引数promptinitialの使い方はread-from-minibufferと同様。

この関数はread-minibufferの呼び出し結果を単に評価する:

(eval-minibuffer prompt initial)
≡
(eval (read-minibuffer prompt initial))
Function: edit-and-eval-command prompt form

この関数はミニバッファーでLisp式を読み取り、それを評価して結果をリターンする。このコマンドとeval-minibufferの違いは、このコマンドでは初期値としてのformはオプションではなく、テキストの文字列ではないプリント表現に変換されたLispオブジェクトとして扱われることである。これはprin1でプリントされるので、文字列の場合はテキスト初期値内にダブルクォート文字(‘"’)が含まれる。Output Functionsを参照のこと。

以下の例では、すでに有効なフォームであるようなテキスト初期値として式をユーザーに提案している:

(edit-and-eval-command "Please edit: " '(forward-word 1))

;; 前の式を評価した後に、
;;   ミニバッファーに以下が表示される:

---------- Buffer: Minibuffer ----------
Please edit: (forward-word 1)∗
---------- Buffer: Minibuffer ----------

すぐにRET をタイプするとミニバッファーをexitして式を評価するので、1単語分ポイントは前進する。