本節では、ミニバッファでLispオブジェクトを読み取る関数について述べます。
この関数はミニバッファを用いてLispオブジェクトを読み取り、 それを評価せずに返す。 引数promptとinitialは、
read-from-minibuffer
と同様に使われる。これは関数
read-from-minibuffer
の インターフェイスを単純化したものである。(read-minibuffer prompt initial) == (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>を打てばよい。 あるいは、入力を編集する。
この関数はミニバッファを用いてLisp式を読み取り、 それを評価してその結果を返す。 引数promptとinitialは、
read-from-minibuffer
と同様に使われる。この関数は
read-from-minibuffer
の インターフェイスを単純化したものである。(eval-minibuffer prompt initial) == (eval (read-minibuffer prompt initial))
この関数はミニバッファを用いてLisp式を読み取り、それを評価する。 このコマンドと
eval-minibuffer
との違いは、 初期フォームformを省略できないことであり、 このフォームをテキスト文字列としではなく表示表現に 変換するLispオブジェクトとして扱うことである。prin1
を用いて表示するので、 これが文字列であると初期テキストにはダブルクォート文字(‘"’)が現れる。 see Output Functions。
edit-and-eval-command
はまず、promptをプロンプトとして ミニバッファを活性にする。 続いて、ミニバッファにformの表示表現を挿入し、ユーザーに編集させる。 ユーザーがミニバッファから抜けると、 編集後のテキストをread
で読み取り評価する。 評価結果がedit-and-eval-command
の値になる。以下の例では、すでに正しいフォームである 初期テキストの式をユーザーに提示する。
(edit-and-eval-command "Please edit: " '(forward-word 1)) ;; 上の式を評価後には、ミニバッファは以下のようになる ---------- Buffer: Minibuffer ---------- Please edit: (forward-word 1)-!- ---------- Buffer: Minibuffer ----------
ただちに<RET>を打つと、 ミニバッファから抜けて式を評価するので、 ポイントを1単語分先へ進めることになる。 この例では、
edit-and-eval-command
はnil
を返す。