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


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

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

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

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

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

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

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

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

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

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

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