1. ホーム
  2. emacs

[解決済み] emacsの分割画面の大きさを変えるには?

2022-05-03 17:55:53

質問

私はemacsを水平に分割して使っています。上はPerlのコードを編集しており、下はシェルです。emacsのデフォルトでは2つのウィンドウは同じ大きさになりますが、シェルのバッファを小さくしたいのです(半分くらいの大きさ?) どうすればいいのか悩んでいました。

解決方法は?

マウスで、ウィンドウサイズをドラッグして移動することができます。

モードライン上で他の「アクティブ」でない場所(バッファ名はセーフ、または右側の未使用領域)をクリックすると、上下にドラッグすることができます。

横方向へのドラッグは、2つのモード線が結合する場所を正確にクリックする必要があります。

C-x - ( shrink-window-if-larger-than-buffer ) は、ウィンドウをその内容に合うように縮小します。

C-x + ( balance-windows を使用すると、ウィンドウの高さと幅を同じにすることができます。

C-x ^ ( enlarge-window ) は、高さを1行分、または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 ) もデフォルトでバインドされます。

これらのコマンドのいずれかに続けて 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 (変更がウィンドウのサイズ/数/配置なのか、どのバッファを表示するのかだけなのか)。 C-c は、最新の設定に戻ります。グローバルに設定するには (winner-mode 1)