私は emacs を水平に分割しています。上では Perl コードを編集し、下ではシェルです。デフォルトでは、emacs は 2 つのウィンドウのサイズを同じにしますが、シェル バッファをもっと小さくしたいです (半分くらいでしょうか)。どうすればそれができるのか知りたいです。
ベストアンサー1
マウスを使用して、ウィンドウのサイズをドラッグできます。
モード ライン上で「アクティブ」でない任意の場所 (バッファ名は安全、または右側の未使用の領域) をクリックすると、上または下にドラッグできます。
左右にドラッグするには、2 つのモード ラインが結合する場所を非常に正確にクリックする必要があります。
C-x -( shrink-window-if-larger-than-buffer
) は、コンテンツに合わせてウィンドウを縮小します。
C-x +( balance-windows
) はウィンドウの高さと幅を同じにします。
C-x ^( enlarge-window
) は高さを 1 行分、またはプレフィックス arg 値分増加します。負の arg はウィンドウを縮小します。たとえば、C-- C-1 C-6 C-x ^は と同様に 16 行縮小しますC-u - 1 6 C-x ^。
( にはデフォルトのバインディングはありませんshrink-window
。)
C-x }( enlarge-window-horizontally
) も同様に水平方向に動作します。
C-x {( shrink-window-horizontally
) もデフォルトでバインドされます。
これらのコマンドの 1 つにrepeat
(C-x zを開始する場合は 、z繰り返しの場合は継続する ) を続けると、必要なサイズに正確に到達することが非常に簡単になります。
特定の値で定期的にこれを行う場合は、キーボードマクロを記録するか、次のようなものを使用します。
(global-set-key (kbd "C-c v") (kbd "C-u - 1 6 C-x ^"))
あるいはこれ:
(global-set-key (kbd "C-c v") (kbd "C-x o C-x 2 C-x 0 C-u - 1 C-x o"))
これは少しハッキーなので、次の方が良いでしょう:
(defun halve-other-window-height ()
"Expand current window to use half of the other window's lines."
(interactive)
(enlarge-window (/ (window-height (next-window)) 2)))
(global-set-key (kbd "C-c v") 'halve-other-window-height)
余談ですが、私はまた、winner-mode
ウィンドウ構成の変更を繰り返し「元に戻す」ことができる機能も気に入っていますC-c left(変更がウィンドウのサイズ/数/配置であっても、単にどのバッファを表示するかであっても)。C-c right最新の構成に戻ります。グローバルに設定するには、(winner-mode 1)