Emacsで tmuxの zoom, unzoomを実現する zoom-window.el書きました

tmux 1.8で導入された機能に zoom, unzoomがあります(Prefix + z).
いくつかの paneに分割した windowを一時的に 1つの paneのみを表示(zoom)し,
再度同コマンドを実行することで元の状態に戻す機能です.


Emacsでもそんな機能があったらいいなぁと思ってこの zoom-windowを作りました.
elscreenにも対応しており, その場合はタブごとに zoom/unzoomの状態を管理
します(elscreen対応がなければ 10行程度で実現できました).

利用用途

ドキュメントとコードを frame分割して見ているときに, コードに集中したい場合,
コードのみを frameに残したいときがあります. 従来であれば, コード以外の
windowを削除したりする必要があるわけですが, zoom-windowを使うことで,
windowを削除することなく, コードのみ一時的に表示することが可能になります.
コードの作業が終わったら, 状態を復元し, ドキュメントにコードの編集内容や
メモを素早く反映することができます.

リポジトリ

https://github.com/syohex/emacs-zoom-window


まだ MELPA, Marmalade等には登録していません.

設定例

elscreenを使わない場合
(require 'zoom-window)
(global-set-key (kbd "C-x C-z") 'zoom-window-zoom)
(setq zoom-window-mode-line-color "DarkGreen") ;; zoomされたときの mode-lineの背景色
elscreenを利用する場合
(require 'elscreen)
(elscreen-start)

(require 'zoom-window)
(setq zoom-window-use-elscreen t) ;; zoom-window-setupの前に設定する必要がある
(zoom-window-setup)

(global-set-key (kbd "C-x C-z") 'zoom-window-zoom)

イメージ

https://github.com/syohex/emacs-zoom-window/raw/master/image/zoom-window.gif

おわりに

何か問題等ありましたら, githubの issuesまでお願いします.