Next: , Previous: Minibuffer File, Up: Minibuffer


4.2 ミニバッファでの編集

ミニバッファは(少々特殊だが)普通のEmacsバッファなので、 通常のEmacsコマンドを使って、入力中の引数のテキストを編集できます。

ミニバッファでは、<RET>はミニバッファから抜けるように定義されているので、 ミニバッファで改行を挿入するために<RET>を使うことはできません。 改行を挿入するには、C-oC-q C-jとします。 (改行とは実は文字「コントロールJ」。)

ミニバッファには独自のウィンドウがあり、 そのウィンドウは画面上の場所を占有しています。 しかし、ミニバッファが使われていないときには、 あたかも何もないかのようにふるまいます。 ミニバッファが使われているときは、 そのウィンドウは他のウィンドウと同様になります。 ミニバッファで引数を入力し終えるまでは、 C-x oで他のウィンドウに切り替えて、 そこでテキストを編集したり他のファイルを訪問したりもできます。 他のウィンドウでテキストをキルしてから、 ミニバッファウィンドウに戻ってそのテキストを ヤンクして引数として使うこともできます。 See Windows

しかし、ミニバッファウィンドウの使用にはいくつかの制限があります。 ミニバッファウィンドウではバッファを切り替えられません。 ミニバッファとそのウィンドウは恒久的に結び付いています。 また、ミニバッファウィンドウを分割したり消去したりすることもできません。 しかし、C-x ^を使う通常の方法で、 ウィンドウの高さを大きくすることは可能です。 ミニバッファリサイズ(resize-minibuffer)モードをオンにしておくと、 ミニバッファに入力したテキストを表示するのに必要なだけ、 ミニバッファウィンドウは縦に広がります。 M-x resize-minibuffer-modeを使って、 このマイナモードをオン/オフします(see Minor Modes)。

ミニバッファウィンドウではスクロールは特殊な動きをします。 ミニバッファがちょうど1行分の高さで、 画面に収まらないほど長い1行のテキストが入っているときには、 スクロールするときに継続行のあいだでは何文字かを自動的に重複して表示します。 変数minibuffer-scroll-overlapで、重複させる文字数を指定します。 デフォルトは20です。

ミニバッファの中で別のウィンドウにある種のヘルプテキストを 表示するようなコマンドを実行したときには、 C-M-vを使って ミニバッファの中からヘルプテキストをスクロールできます。 これは、ミニバッファを抜けるまで有効です。 この機能は、補完をしているミニバッファが、 補完候補を別のウィンドウに表示するような場合に特に便利です。 See Other Window

Emacsでは、通常、ミニバッファを使っている最中には、 ミニバッファを用いるコマンドの多くを実行できないようにしています。 これは、再帰的なミニバッファの使用で初心者が混乱するのを避けるためです。 このようなコマンドをミニバッファから利用できるようにするには、 変数enable-recursive-minibuffersnil以外を設定します。