このセクションではフレームのサイズを変更せずにウィンドウのサイズを変更する関数について説明します。生きたウィンドウはオーバーラップしないので、これらの関数は2つ以上のウィンドウを含む関数上でのみ意味があります(ウィンドウのリサイズにより他の少なくとも1つのウィンドウのサイズも変更される)。フレーム上に単一のウィンドウしか存在しない場合には、フレームの変更以外でウィンドウのサイズ変更はできません(フレームのサイズを参照)。
注記した場合を除き、これらの関数は引数として内部ウィンドウも許容します。内部ウィンドウのリサイズにより、同じスペースにフィットするように子ウィンドウもリサイズされます。
この関数はwindowのサイズがdelta行により垂直に変更され得る場合にはdeltaをリターンする。オプション引数horizontalが非nil
の場合には、windowがdelta列単位に水平方向にリサイズ可能ならかわりにdeltaをリターンする。これは実際にはウィンドウのサイズを変更しない。
windowがnil
の場合のデフォルトは選択されたウィンドウ。
deltaが正の値ならそのウィンドウが行または列の単位で拡張可能かどうかをチェックすることを意味し、deltaが負の値ならそのウィンドウが行または列の単位で縮小可能かどうかをチェックすることを意味する。deltaが非0の場合のリターン値0は、そのウィンドウがリサイズ可能であることを意味する。
変数window-min-height
とwindow-min-width
には通常は許容される最小のウィンドウサイズを指定する(ウィンドウのサイズを参照)。しかしオプション引数ignoreが非nil
なら、この関数はwindow-size-fixed
と同様にwindow-min-height
とwindow-min-width
を無視する。そのかわりに上下の装飾と1行分の高さのテキストの合計をウィンドウの最小高さ、左右の装飾と2列分を占めるのテキストの合計をウィンドウの最小幅と判断する。
オプション引数pixelwiseが非nil
ならdeltaはピクセル単位として解釈される。
この関数はwindowをdelta増加することによりリサイズを行う。horizontalがnil
なら高さをdelta行、それ以外は幅をdelta行変更する。正のdeltaはウィンドウの拡大、負のdeltaは縮小を意味する。
windowがnil
の場合のデフォルトは選択されたウィンドウ。要求されたようにウィンドウをリサイズできなければエラーをシグナルする。
オプション引数ignoreは上述の関数window-resizable
の場合と同じ意味をもつ。
オプション引数pixelwiseが非nil
ならdeltaはピクセル単位として解釈される。
この関数がどのウィンドウのエッジを変更するかの選択はオプションwindow-combination-resize
の値、および関連するウィンドウのコンビネーションリミット(combination
limits: 組み合わせ制限)に依存し、両方のエッジを変更するような場合もいくつかある。ウィンドウの再結合を参照のこと。ウィンドウの下端か右端のエッジを移動することだけでリサイズするには関数adjust-window-trailing-edge
を使用すること。
この関数はwindowの下端エッジをdelta行分移動する。オプション引数horizontalが非nil
なら、かわりに右端エッジをdelta列分移動する。windowがnil
の場合のデフォルトは選択されたウィンドウ。
オプション引数pixelwiseが非nil
ならdeltaはピクセル単位として解釈される。
正のdeltaはエッジを下方か右方、負のdeltaはエッジを上方か左方へ移動する。deltaで指定された範囲までエッジを移動できなければ、この関数はエラーをシグナルせずに可能な限りエッジを移動する。
この関数は移動されたエッジに隣接するウィンドウのリサイズを試みる。何らかの理由(隣接するウィンドウが固定サイズの場合等)によりそれが不可能なら、他のウィンドウをリサイズするかもしれない。
このオプションの値が非nil
ならEmacsはウィンドウをピクセル単位でリサイズする。これは現在のところsplit-window
(ウィンドウの分割を参照)、maximize-window
、minimize-window
、fit-window-to-buffer
、fit-frame-to-buffer
、shrink-window-if-larger-than-buffer
(すべて以下に記述)のような関数に影響を与える。
あるフレームのピクセルサイズがそのフレームの文字サイズの整数倍でないときは、たとえこのオプションがnil
であっても少なくとも1つのウィンドウがピクセル単位でリサイズされるであろうことに注意。デフォルト値はnil
。
以下のコマンドは、より具体的な方法でウィンドウをリサイズします。これらがインタラクティブに呼び出されたときは選択されたウィンドウにたいして作用します。
このコマンドはwindowの高さか幅をウィンドウ内のテキストにフィットするように調整する。windowがリサイズできたら非nil
、それ以外はnil
をリターンする。windowが省略またはnil
の場合のデフォルトは選択されたウィンドウ、それ以外の場合には生きたウィンドウであること。
windowが垂直コンビネーションの一部なら、この関数はwindowの高さを調整する。新たな高さはそのウィンドウのバッファーのアクセス可能な範囲の実際の高さから計算される。オプション引数max-heightが非nil
なら、それはこの関数がwindowに与えることができる最大のトータル高さを指定する。オプション引数min-heightが非nil
なら、それは与えることができる最小のトータル高さを指定して、それは変数window-min-height
をオーバーライドする。max-heightとmin-heightはいずれもwindow上下のすべての装飾を含んだ行数で指定する。
windowが水平コンビネーションの一部で、かつオプションfit-window-to-buffer-horizontally
(以下参照)の値が非nil
なら、この関数はwindowの幅を調整する。新たな幅はwindowのカレントのスタート位置以降のバッファーの最長の行から計算される。オプション引数max-widthは最大幅を指定して、デフォルトはwindowのフレーム幅。オプション引数min-widthは最小幅を指定して、デフォルトはwindow-min-width
。max-widthとmin-widthはどちらもwindowの左右のすべての装飾を含んだ列数で指定する。
オプション引数preserve-sizeが非nil
なら、将来のリサイズ操作の間のwindowのサイズを予約するパラメーターをインストールする(ウィンドウサイズの保持を参照)。
オプションfit-frame-to-buffer
(以下参照)が非nil
なら、この関数はfit-frame-to-buffer
(以下参照)を呼び出すことにより、windowのコンテンツにフィットするようにwindowのフレームのリサイズを試みるだろう。
これが非nil
なら、fit-window-to-buffer
はウィンドウを水平方向にリサイズできる。これがnil
(デフォルト)ならfit-window-to-buffer
はウィンドウ決して水平方向にリサイズしない。これがonly
ならウィンドウを水平方向だけにリサイズできる。その他の値ではfit-window-to-buffer
がウィンドウをどちらの方向にもリサイズできることを意味する。
このオプションが非nil
なら、fit-window-to-buffer
はフレームをフレームのコンテンツにフィットさせることができる。フレームは、フレームのルートウィンドウが生きたウィンドウで、かつこのオプションが非nil
の場合のみフィットされる。horizontally
ならフレームは水平方向にのみフィットされる。vertically
ならフレームは垂直方向にのみフィットされる。その他の非nil
値はフレームがどちらの方向にもフィットできることを意味する。
単一のウィンドウだけを表示するフレームではコマンドfit-frame-to-buffer
を使用してそのバッファーにフレームをフィットできます。
このコマンドはframeのサイズを、表示しているバッファーのコテンツに正確に調整する。frameには任意の生きたフレームを指定できデフォルトは選択されたフレーム。frameのルートウィンドウが生きている場合のみフィットが行われる。
引数max-height、min-height、max-width、min-widthが非nil
の場合にはframeのルートウィンドウの新たなボディーサイズの境界を指定する。これらの引数いずれかに非nil
値を指定した場合には、後述のfit-frame-to-buffer-sizes
オプションで指定された対応する値をオーバーライドする。
この関数はオプション引数onlyがvertically
なら垂直方向のみ、onlyがhorizontally
なら水平方向のみフレームをリサイズする。
fit-frame-to-buffer
の振る舞いは次にリストする2つのオプションで制御可能です。
このオプションはフレーム周辺のマージンを指定してfit-frame-to-buffer
でフィットさせるために使用できる。このようなマージンはたとえばタスクバーや親フレームの一部とオーバーラップするフレームのリサイズを防ぐために有用かもしれない。
これはフィットされるフレームの左右上下にフリーとして残されるピクセル数を指定する。デフォルトのnil
はそれぞれにたいしてマージンを使用しないことを指定する。ここで指定した値は、特定のフレームにたいしてもしそのフレームのfit-frame-to-buffer-margins
が与えられればオーバーライドされ得る。
このオプションはfit-frame-to-buffer
にたいするサイズ境界を指定する。これはすべてのフレームにおいてバッファーにフィットされるルートウィンドウのbodyの行の最大と最小、列の最大と最小の合計を指定する。指定された値が非nil
であるようなオプションは、fit-frame-to-buffer
の対応する引数にオーバーライドされる。
このコマンドはwindowにたいしてそのバッファーを完全に表示できるが、window-min-height
以上の行を表示できるまで可能な限りwindowの高さを縮小する。リターン値はそのウィンドウがリサイズされれば非nil
、それ以外なら非nil
。windowが省略またはnil
の場合のデフォルトは選択されたウィンドウ。それ以外では生きたウィンドウであること。
このコマンドはそのウィンドウがバッファーのすべてを表示するにはすでに高さが低すぎる場合、バッファーのどこかがスクリーンからスクロールオフされている場合、またはそのウィンドウがフレーム内で唯一の生きたウィンドウの場合は何も行わない。
このコマンドは自身の処理を行うためにfit-window-to-buffer
(上記参照)を呼び出す。
この関数は各ウィンドウにたいして完全な幅、および/または完全な高さを与えるような方法によって各ウィンドウの釣り合いをとる。window-or-frameにフレームを指定すると、そのフレーム上のすべてのウィンドウのバランスをとる。window-or-frameにウィンドウを指定すると、そのウィンドウとウィンドウのsiblings(兄弟)にたいしてのみのバランスをとる(ウィンドウとフレームを参照)。
この関数は選択されたフレーム上のすべてのウィンドウにたいして、おおよそ同じスクリーンエリアを与えようと試みる。完全な幅か高さをもつウィンドウにたいしては、他のウィンドウと比較してより多くのスペースは与えられない。
この関数は、windowにたいして、そのフレームをリサイズしたり他のウィンドウを削除することなく、水平垂直の両方向で可能な限り大きくなるように試みる。windowが省略またはnil
の場合のデフォルトは選択されたウィンドウ。
この関数はwindowにたいして、そのフレームをリサイズしたりそのウィンドウを削除することなく、水平垂直の両方向で可能な限り小さくなるように試みる。windowが省略またはnil
の場合のデフォルトは選択されたウィンドウ。