- golden-ratio 20150819.420(in MELPA)
- Automatic resizing of Emacs windows to the golden ratio
概要
フレームをたくさん分割し、
ウィンドウをたくさん開いていると、
カレントウィンドウの領域が狭くて
不自由な思いをしたことがありますか?
それならば
golden-ratio.el
が役立つかもしれません。
グローバルマイナーモード
M-x golden-ratio-mode
を有効にすると、
自動でウィンドウのサイズを調節してくれます。
黄金比(1:1.618)に基いて
カレントウィンドウを拡大し、
他のウィンドウを縮小します。
言葉で説明するよりも
本家アニメーションgifを見てみましょう。
C-x oを繰り返すと
自動でウィンドウのサイズが
変更されるのがわかります。
Fig1: 自動リサイズ
ちなみに僕は似たようなコードを書いています。
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてgolden-ratioを使う方は
以下のコマンドを実行します。
M-x package-install golden-ratio
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name golden-ratio
カスタマイズ
一部のバッファは
リサイズしたくないですね。
たとえばM-x calendarは
すっぽりカレンダーの内容が
おさまるように表示されます。
golden-ratio-exclude-*系の変数を
設定すればリサイズの対象外になります。
golden-ratio-exclude-modes
golden-ratio-exclude-buffer-names
golden-ratio-exclude-buffer-regexp
golden-ratio-inhibit-functions
に
無引数関数リストを指定できます。
ウィンドウを選択した直後に関数を呼び出し、
真を返したときにはリサイズしません。
golden-ratio.elはあくまで
M-x other-window
M-x pop-to-buffer
にアドバイスをかけているだけですので、
他のウィンドウ選択系のコマンドでは動作しません。
そこで golden-ratio-extra-commands
に
明示的にウィンドウ選択系のコマンドを指定します。
設定 170205073035.golden-ratio.el(以下のコードと同一)
(golden-ratio-mode 1) ;;; 条件に応じてウィンドウの大きさを変更しない ;; ウィンドウの大きさを変更しないメジャーモード (setq golden-ratio-exclude-modes '(calendar-mode)) ;; ウィンドウの大きさを変更しないバッファ名 (setq golden-ratio-exclude-buffer-names '(" *Org tags*" " *Org todo*")) ;; ウィンドウの大きさを変更しないバッファ名の正規表現 (setq golden-ratio-exclude-buffer-regexp '("\\*anything" "\\*helm")) ;;; ウィンドウ選択系のコマンドで作用させる (setq golden-ratio-extra-commands '(windmove-left windmove-right windmove-down windmove-up))
実行方法
$ wget http://rubikitch.com/f/170205073035.golden-ratio.el $ emacs -Q -f package-initialize -l 170205073035.golden-ratio.el
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。