fnwiya's quine

自分自身を出力するブログ

ゴチャゴチャになったEmacsの画面を元に戻す方法

しばらく作業していると
突然の画面分割で比率がおかしくなることがあります。
基本はポップアップの対象にすることで対応できるんですが、
もぐらたたき的にやっていかねばならず、
そのたびに再起動、、、やってられん!

ということでemacsを起動時のウィンドウに戻す関数を書きました。 なお、画面サイズはMBA11インチの左半分になってます。

(defun reset-window()
  (interactive)
    (delete-other-windows)
    (set-frame-position (selected-frame) 0 0)
    (set-frame-size (selected-frame) 94 47)
    (setq w (selected-window))
    (setq w2 (split-window w (- (window-height w) 8)))
    (select-window w2)
    (multi-term)
    (select-window w)
    (recentf-open-files))

そんなに頻繁には使わないのでキーマップの割当はしていません。 使いたくなったら
M-x reset-window

  • 左半分
  • 上はrecentf
  • 下はmulti-term

を起動した状態になります。

ちなみに起動時の画面分割指定は

(add-hook 'after-init-hook (lambda()
    (set-frame-position (selected-frame) 0 0)
    (set-frame-size (selected-frame) 94 47)
    (setq w (selected-window))
    (setq w2 (split-window w (- (window-height w) 8)))
    (select-window w2)
    (multi-term)
    (select-window w)
    (recentf-open-files)))

DRYにするためにはafter-init-hookの中でreset-window呼んだほうがいいと思いますが、 お試し期間ということで。