GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Object-from-Minibuffer.html ・ emacs-doc.conao3.com

21.3 ミニバッファを用いたLispオブジェクトの読み込み

この節では、ミニバッファを用いてLispオブジェクトを読み込むための関数について説明します。

関数: read-minibuffer prompt &optional initial

この関数は、ミニバッファを用いて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 と入力してすぐに初期入力をデフォルトとして使用することも、入力を編集することもできます。

関数: eval-minibuffer prompt &optional initial

この関数は、ミニバッファを用いてLisp式を読み込み、評価した上で結果を返します。引数 prompt と initial は read-from-minibuffer と同様に使用されます。

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

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

この関数は、ミニバッファ内の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単語分進みます。