smartwin 20160513.56(in MELPA)
A minor mode shows shell like buffers.

概要

smartwin.el は、指定されたバッファを表示したウィンドウの高さを自動調節します。
対象となるバッファは smartwin-buffers で指定され、デフォルトではshell-modeやgrep-modeなどです。
対象となるバッファにフォーカスを移すとそのバッファの高さが広がり、フォーカスを外すと縮みます。

対象となるバッファは上下分割になります。
ワイドディスプレイを使っているのであればこのような小細工は不要で素直に左右分割で表示させれば済む話です。
このelispが役立つのは、ネットブックなど横幅が狭いディスプレイを使っているときでしょう。

(defcustom smartwin-buffers
  '(;; Emacs
    "*Miniedit Help*"
    completion-list-mode
    compilation-mode
    grep-mode
    occur-mode
    "*scratch*"
    "*evil-registers*"
    "*ielm*"
    "*Inferior Octave*"
    ("^\\*sbt\\*.*" :regexp t)
    "*ensime-db-backtrace-buffer*"
    ;; shell and eshell buffers
    ("^\\*e?shell\\*\\(<.*>\\)?$" :regexp t)
    "*Pp Macroexpand Output*"
    "*Shell Command Output*"
    ;; VC
    "*vc-diff*"
    "*vc-change-log*"
    ;; Undo-Tree
    " *undo-tree*"
    ;; geiser
    " Chicken REPL *"
    ;; Anything
    ("^\\*anything.*\\*$" :regexp t)
    ;; SLIME
    "*slime-apropos*"
    "*slime-macroexpansion*"
    "*slime-description*"
    "*slime-compilation*"
    "*slime-xref*"
    sldb-mode
    slime-repl-mode
    slime-connection-list-mode)
  略)

20151223035925.png
Fig1: M-x eshellを実行したばかりだが、行数が少ないのでウィンドウの高さは低い

20151223035945.png
Fig2: コマンドを実行して行数が増えるとウィンドウは高くなる

20151223035948.png
Fig3: フォーカスを外すとeshellウィンドウは小さくなる

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.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/")))

初めてsmartwinを使う方は
以下のコマンドを実行します。

M-x package-install smartwin

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name smartwin

実行方法

$ wget http://rubikitch.com/f/151223034535.smartwin.el
$ emacs -Q -f package-initialize -l 151223034535.smartwin.el


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