by shigemk2

当面は技術的なことしか書かない

Emacs のウィンドウを 3 分割さす

Emacs の画面 3 分割がすごく便利 - キーボードをたたくとき
より。

C-x 2とかC-x 3とかでウィンドウを分割できるが、
基本2分割です。というわけで、上記のリンクを参考に
設定ファイルにこんなコードを書く。

(defun split-window-horizontally-n (num_wins)
  (interactive "p")
  (if (= num_wins 2)
      (split-window-horizontally)
    (progn
      (split-window-horizontally
       (- (window-width) (/ (window-width) num_wins)))
      (split-window-horizontally-n (- num_wins 1)))))
;; 僕はgit rebase -i をemacsで使っててC-x#と衝突するので、こんな風に改変した
(global-set-key "\C-x@" '(lambda ()
                           (interactive)
                           (split-window-horizontally-n 3)))

これで縦3分割が可能となりました。

追記: シンプルにこう書いてもいいですね。むしろコード量が少ない分こっちのほうがいいと思う。

(defun split-window-horizontally-n (num_wins)
  (interactive "p")
  (dotimes (i (- num_wins 1))
    (split-window-horizontally))
  (balance-windows))

(global-set-key "\C-x@" (lambda ()
                           (interactive)
                           (split-window-horizontally-n 3)))