この節では、ミニバッファを用いてLispオブジェクトを読み込むための関数について説明します。
この関数は、ミニバッファを用いてLispオブジェクトを読み込み、評価せずにそのまま返します。引数 prompt と initial は read-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)))
;; Here is how the minibuffer is displayed:
---------- Buffer: Minibuffer ---------- Enter an expression: (testing)∗ ---------- Buffer: Minibuffer ----------
ユーザーは、RET と入力してすぐに初期入力をデフォルトとして使用することも、入力を編集することもできます。
この関数は、ミニバッファを用いてLisp式を読み込み、評価した上で結果を返します。引数 prompt と
initial は read-from-minibuffer と同様に使用されます。
この関数は、単に read-minibuffer の呼び出し結果を評価します:
(eval-minibuffer prompt initial) ≡ (eval (read-minibuffer prompt initial))
この関数は、ミニバッファ内のLisp式を読み込み、評価し、その結果を返します。このコマンドとeval-minibufferとの違いは、ここでは先頭のformが省略不可であり、テキスト文字列としてではなく、印刷表現に変換されるLispオブジェクトとして扱われる点です。これはprin1を用いて印刷されるため、文字列である場合は、先頭のテキストにダブルクォート文字(‘"’)が現れます。出力関数を参照してください。
以下の例では、すでに有効なフォームとなっている初期テキスト付きの式をユーザーに提示します。
(edit-and-eval-command "Please edit: " '(forward-word 1)) ;; After evaluation of the preceding expression, ;; the following appears in the minibuffer:
---------- Buffer: Minibuffer ---------- Please edit: (forward-word 1)∗ ---------- Buffer: Minibuffer ----------
すぐに RET と入力すると、ミニバッファを抜けて式が評価され、ポイントが1単語分進みます。