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


20.2 ウィンドウの分割

C-x 2

選択されたウィンドウを上下に2分割します(split-window-below)。

C-x 3

選択されたウィンドウを左右に2分割します(split-window-right)。

C-mouse-2

ウィンドウのモードライン上では、ウィンドウを分割します。

C-x 2 (split-window-below)は、選択されたウィンドウを上下に2つのウィンドウに分割します。分割した後は、上が選択されたウィンドウになり、新たに分割されたウィンドウが下になります。2つのウィンドウは最初同じポイント値をもち、(可能な限り)同じバッファー部分を表示します。必要ならポイントをスクリーン上に残したまま、ウィンドウをスクロールできます。デフォルトでは2つのウィンドウの高さは、元のウィンドウの高さの半分になります。正の数引数は上のウィンドウの高さが何行分かを指定し、負の数引数は下のウィンドウが何行分の高さかを指定します。

変数split-window-keep-pointnilに変更すると、C-x 2はスクリーンに表示されるテキストができるだけ前と同じになるように、ウィンドウに表示されるバッファー部分と、各ウィンドウのポイント位置を調整します。さらにポイントが元のウィンドウの下半分にあったときは、上ではなく下のウィンドウが選択されます。

C-x 3 (split-window-right)は、選択されたウィンドウを左右に2つのウィンドウに分割します。左のウィンドウが選択されたウィンドウとなり、右のウィンドウには同じバッファーの同じ部分が表示され、ポイント位置も同じです。正の数引数は左のウィンドウの幅を列数で指定し、負の数引数は右のウィンドウの幅を数引数で指定します。

ウィンドウをC-x 3で分割すると、分割されたウィンドウの幅はフレーム全体の幅より小さくなります。ウィンドウの幅が狭くなりすぎると、継続行が使われたバッファーを読むことが困難になる場合があります(Continuation Linesを参照してください)。したがってウィンドウの幅が50列より狭くなったとき、Emacsは自動的に行を切り詰めに切り替えます。この切り詰めは、変数truncate-linesの値に関係なく発生します(Line Truncationを参照してください)。truncate-linesのかわりに、この自動切り詰めを制御するのは、変数truncate-partial-width-windowsです。この変数の値が正の整数(デフォルトは50)の場合、それは自動的な行切り詰めが発生する前の、分割ウィンドウの最小のトータル幅(total width)を指定します。この値がnilの場合、自動的な行切り詰めは無効です。他の非nil値では、分割されたウィンドウの幅に関係なく、Emacsは行を切り詰めます。ウィンドウのトータル幅(total width)とは、window-total-width (Window Sizes in The Emacs Lisp Reference Manualを参照してください)で報告される列単位の値で、これにはフリンジと、継続および切り詰めのためのグリフ、マージン、スクロールバーが含まれます。

テキスト端末では、左右に分割されたウィンドウを垂直に分割する分割線は、vertical-borderフェイスで描画されます。

ウィンドウのモードライン上でC-mouse-2をクリックすると、クリックした位置に垂直分割線を配してウィンドウを分割します。Emacsがコンパイルされた方法に依存しますが、ウィンドウのスクロールバー上でC-mouse-2をクリックすると、クリックした位置に水平分割線を配してウィンドウを分割します(この機能は、EmacsがGTK+のスクロールバーを使っているときは機能しません)。

デフォルトでは、ウィンドウを分割したとき、Emacsは分割されたウィンドウのサイズをフレームのデフォルトフォントの整数倍にします。これによりスクリーンが正確に2分割されない場合があります。変数window-resize-pixelwiseを非nil値にセットすると、Emacsは分割されたウィンドウのサイズを、同じピクセル数にします(元のサイズが奇数のピクセル数の場合、1ピクセル増減されます)。フレームのピクセル数がフレームの文字サイズ倍でない場合、このオプションがnilでも、少なくとも1つのウィンドウがピクセル幅のサイズ変更をされることに注意してください。