次: , 前: Size of Window, 上: Windows


27.14 ウィンドウサイズの変更

ウィンドウサイズ関数は2つに大別できます。 ウィンドウサイズを変える上位レベルのコマンドと ウィンドウサイズを調べる下位レベルの関数です。 Emacsでは重なり合ったウィンドウやウィンドウのあいだに隙間を許さないので、 1つのウィンドウの大きさを変えると別のウィンドウにも影響します。

— コマンド: enlarge-window size &optional horizontal

この関数は、隣り合うウィンドウから場所を奪って、 選択されているウィンドウをsize行高くする。 1つのウィンドウから場所を奪い取り、奪い尽くすと別のウィンドウから取る。 場所を奪われたウィンドウがwindow-min-height行未満になると、 そのウィンドウは消える。

horizontalnil以外であると、 この関数は、隣り合うウィンドウから場所を奪って、 選択されているウィンドウをsizeコラム広くする。 場所を奪われたウィンドウがwindow-min-widthコラム未満になると、 そのウィンドウは消える。

指定した大きさがウィンドウのフレームの大きさを超える場合、 この関数は、ウィンドウがフレームの高さ(あるいは幅)全体を占めるようにする。

sizeが負であると、この関数は−size行/コラムだけ ウィンドウを縮める。 ウィンドウが(window-min-heightwindow-min-widthの) 最小サイズより小さくなると、enlarge-windowは 当該ウィンドウを削除する。

enlarge-windownilを返す。

— コマンド: enlarge-window-horizontally columns

この関数は、選択されているウィンドウをcolumnsコラム広くする。

          (defun enlarge-window-horizontally (columns)
            (enlarge-window columns t))
     
— コマンド: shrink-window size &optional horizontal

この関数はenlarge-windowに似ているが引数sizeの符号を変えて、 選択されているウィンドウを縮めて指定行数(コラム数)を 他のウィンドウに与える。 ウィンドウがwindow-min-heightwindow-min-width未満に縮むと、 そのウィンドウは消える。

sizeが負であると、ウィンドウは −size行/コラムだけ伸びる。

— コマンド: shrink-window-horizontally columns

この関数は、選択されているウィンドウをcolumnsコラム狭くする。 つぎのように定義できる。

          (defun shrink-window-horizontally (columns)
            (shrink-window columns t))
     
— コマンド: shrink-window-if-larger-than-buffer window

このコマンドは、バッファの全内容を表示するに十分なだけの大きさに windowを縮めるが、window-min-height行未満にはしない。

しかし、バッファの全テキストを表示するにはウィンドウが小さすぎる場合や、 内容の一部がスクロールでスクリーンからはみ出している場合や、 ウィンドウの幅がフレームの幅と同じでない場合や、 ウィンドウがフレームの唯一のウィンドウである場合には、 このコマンドはなにもしない。

つぎの2つの変数は、ウィンドウサイズを変える関数に最小の高さと幅を課します。

— ユーザオプション: window-min-height

この変数の値は、ウィンドウが自動的に削除されるまでに どの程度までウィンドウが短くなりうるかを決定する。 ウィンドウをwindow-min-height行未満に小さくすると自動的に削除され、 これより短いウィンドウは作成できない。 絶対的な最小の高さは2行(モード行に1行、バッファの表示に1行)である。 ウィンドウサイズを変える処理では、この変数が2未満であると2に設定し直す。 デフォルト値は4である。

— ユーザオプション: window-min-width

この変数の値は、ウィンドウが自動的に削除されるまでに どの程度までウィンドウが狭くなりうるかを決定する。 ウィンドウをwindow-min-widthコラム未満に小さくすると自動的に削除され、 これより狭いウィンドウは作成できない。 絶対的な最小の幅は1であり、それ未満は無視する。 デフォルト値は10である。