Next: , Previous: , Up: ミニバッファー   [Contents][Index]


9.3 ミニバッファーでの編集

ミニバッファーは一風変わっていますがEmacsのバッファーなので、引数テキストを編集するための、通常のEmacsコマンドが利用可能です(しかしプロンプトは読み取り専用(read-only)なので変更できません)。

ミニバッファーでのRETは引数を完了させるので、これを使って改行を挿入することはできません。C-q C-jを使えば制御文字C-j(改行文字と等しい)を挿入できます(テキストの挿入を参照してください)。かわりにC-o (open-line)を使うこともできます(空行を参照してください)。

ミニバッファーの中ではTABSPC?補完コマンド(completion commands)にバインドされている場合があります。これによりテキスト全部を入力せずに、入力したいテキストを簡単に入力できます。補完を参照してください。RETのときと同様、C-qを使ってTABSPC、‘?’のような文字を入力できます。補完ではなく通常のようにSPC?を入力したい場合には、initファイルに以下を記述してください:

(keymap-unset minibuffer-local-completion-map "SPC")
(keymap-unset minibuffer-local-completion-map "?")

便宜上ミニバッファーでのC-a (move-beginning-of-line)は、プロンプトの先頭ではなく引数テキストの先頭にポイントを移動します。これにより、たとえばC-a C-kで引数全体をkillことができます。

ミニバッファーがアクティブのとき、エコーエリアは通常のEmacsウィンドウのように扱われます。たとえば(C-x oで)他のウィンドウに切り替えて、そこでテキストを編集して、またミニバッファーのウィンドウにもどって引数の入力を完了できます。ほかのウィンドウでテキストをkillしてからミニバッファーのウィンドウにもどり、引数にテキストをyankすることさえ可能です。しかしミニバッファーのウィンドウは分割(split)できないなどの制限もあります。複数ウィンドウを参照してください。

通常ミニバッファーのウィンドウは、スクリーン行で1行を占めます。しかし2行以上のテキストをミニバッファーに追加すると、そのテキストに対応して自動的に拡張されます。変数resize-mini-windowsは、ミニバッファーのサイズ調整を制御します。デフォルト値はgrow-onlyで、これは今説明したとおりの振る舞いを意味します。もし値がtの場合、ミニバッファーから行を削除すると。ミニバッファーのウィンドウは自動的に縮小されて、スクリーン行で1行まで小さくなります。値がnilの場合、ミニバッファーのウィンドウは自動的にサイズを変更しません。しかし通常のウィンドウのサイズ調整コマンドは使用できます(複数ウィンドウを参照してください)。

変数max-mini-window-heightは、ミニバッファーのウィンドウのサイズ変更するときの、最大高さを制御します。浮動少数を指定した場合は、フレームの高さにたいする比になります。整数を指定した場合は最大行数になります。nilを指定すると、ミニバッファーのウィンドウの自動サイズ調整は行われません。デフォルト値は0.25です。

ミニバッファーでのC-M-vコマンドは、他のウィンドウに表示されたコマンドのヘルプテキストをスクロールします。M-PageUpM-PageDown(またはM-priorM-next)でも、ヘルプテキストをスクロールできます。これは長い補完候補のリストを選ぶときなどに便利です。他のウィンドウの使用を参照してください。

Emacsではミニバッファーがアクティブのときには、通常はミニバッファーにたいして多くのコマンドが使用できないようになっています。ミニバッファーでこれらのコマンドを使えるようにするには、変数enable-recursive-minibufferstをセットしてください。ミニバッファーを再帰的に使用中にミニバッファーのプロンプトにカレントの再帰深さを表示するために、minibuffer-depth-indicate-modeも有効にする必要があるかもしれません。

ミニバッファーがアクティブなときは、通常はminibuffer-modeです。これはこれは特別な機能をもたない、内部的なEmacsモードです。

アクティブでないとき、ミニバッファーはminibuffer-inactive-modeになっており、mouse-1をクリックすると、*Messages*バッファーを表示します。ミニバッファー専用のフレームを使用している場合、Emacsはそこでのキー入力も認識します。たとえばnは新しいフレームを作成します。