window-toggle-division
■具体的に何をするか
2分割したWindowの縦横を切り替える。
(defun window-toggle-division () "ウィンドウ 2 分割時に、縦分割<->横分割" (interactive) (unless (= (count-windows 1) 2) (error "ウィンドウが 2 分割されていません。")) (let ((before-height (window-height (selected-window))) (other-buf (window-buffer (next-window (selected-window) nil)))) (delete-other-windows) (if (= (window-height (selected-window)) before-height) (split-window) (split-window-vertically)) (switch-to-buffer-other-window other-buf) (other-window -1)))
これを其のまま使えないかなぁとか思ったけど、どうも使えない様子。何故か
(= (window-height (selected-window)) before-height)がいつもtに成っているような感じ。相当眠いので、何か勘違いしてそうな木もするけど。
チョット探してみたら
xyzzy カスタマイズ(Vz/Wz 風)
http://www.geocities.co.jp/SiliconValley-Sunnyvale/2892/custmize.html
ここにこんなのが。
(defvar vz_split_window_n 0) (defun vz-split-window-n () (interactive) (case vz_split_window_n (0 (progn (delete-other-windows) (split-window (- (floor (window-height) 2) 1)) (progn (other-window 1) (selected-window)) (next-buffer); other-buffer ではうまくいかない (progn (other-window 1) (selected-window)) (setq vz_split_window_n 1)) ) (1 (progn (delete-other-windows) (split-window (- (floor (window-width) 2) 1) t) (progn (other-window 1) (selected-window)) (next-buffer) (progn (other-window 1) (selected-window)) (setq vz_split_window_n 2)) ) (2 (progn (delete-other-windows) (setq vz_split_window_n 0)) ) ) )
こんなのがあった。こっちは普通に使える。何となくこっちの方が便利そうだし。
C-x 3に割り当ててみた。