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を繰り返すと
自動でウィンドウのサイズが
変更されるのがわかります。

golden_ratio_el.gif
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


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。