Next: , Up: Minibuffer   [Contents][Index]


8.1 ミニバッファーを使う

ミニバッファーを使用中、ミニバッファーはエコーエリアにカーソルとともに表示されます。ミニバッファーは通常、コロンが最後についたプロンプト(prompt)から開始されます。プロンプトはどのような入力が期待されるか、そしてそれがどのように使われるのかを示します。プロンプトは、フェイスminibuffer-promptを使ってハイライトされます。

ミニバッファーで入力するもっとも簡単な方法は、テキストを入力してからRETで引数入力を完了してミニバッファーを終了する方法です。かわりにC-gを入力して引数を求めているコマンドをキャンセルし、ミニバッファーを終了することもできます(Quittingを参照してください)。

コロンの前のカッコ内にデフォルト引数(default argument)を表示するプロンプトもあります。このデフォルト値は、RETだけを入力したときに引数として使用されます。たとえばバッファー名を読み取るコマンドは、通常はデフォルト値としてバッファー名を表示します。RETを入力することでデフォルトのバッファーにたいして処理を行うことができます。ユーザーオプションminibuffer-default-prompt-formatでデフォルト引数の表示方法をカスタマイズできます。

Minibuffer Electric Defaultモードというグローバルマイナーモードを有効にしている場合、ミニバッファーの内容の変更を開始すると、Emacsはデフォルト引数を非表示にします。ミニバッファーのテキストを元に戻せば、ふたたびプロンプトにデフォルト値が表示されます。さらに変数minibuffer-eldef-shorten-defaultを非nil値に変更すると、スクリーンのスペースを節約するために、‘(default default-arg)’のかわりに‘[default-arg]’の形式でデフォルト値を表示します。このマイナーモードを有効にするには、M-x minibuffer-electric-default-modeとタイプしてください。

エコーエリアにミニバッファーが表示されると、他のエコーエリアの使用と競合するかもしれません。ミニバッファーがアクティブなときは、メッセージはミニバッファーのテキストの後にカッコ内に数秒、あるいは何かをタイプするまで表示されて、その後消えます。ミニバッファーの使用中、Emacsはキーストロークをエコーしません。

ミニバッファー使用中に、たとえば入力を要するテキストをメモするために別フレームに切り替えることができます(Frame Commandsを参照)。デフォルトではアクティブミニバッファーはその新たなフレームへ移動します。ユーザーオプションminibuffer-follows-selected-framenilにセットした場合には、ミニバッファーはそれをオープンしたフレームに留まり、カレントコマンドを完了(またはabort)するためにそのフレームに切り替えて戻らなければなりません。このオプションにnilt以外の値をセットすると、ミニバッファーはカレントコマンドでオープンされた再帰的ミニバッファーの後でのみ移動します((elisp)Recursive Miniを参照)。このオプションは主にEmacs 28.1以前の挙動を(おおよそ)維持するためです。最終的にミニバッファーの使用を終えた際には、そのコマンドの効果は常にミニバッファーをオープンした最初のフレームで発生することに注意してください。唯一の例外はそのフレームがもはや存在しない場合で、そのときは選択されたフレームにたいして処理を行います。