[emacs][anything] anything-display-function でストレスフリー
常にemacsのwindowを複数に分割して作業しているので、どうしてもanythingウインドウが小さくなってしまい不自由していた。
しかし、anything-display-functionを使ってanything.elのウィンドウ表示を制御する - Emacs/Lisp/Drill - Emacsグループ の split-root.el を用いた方法で気持ちよく解決。
anything.el に、anything-display-function なる便利な設定が追加されたことに今更ながら気がついた orz
因みに、記事の通りの設定だと、widen-window.el と併用したときに動作に違和感があったので、高さを window-height ではなく、 frame-height を元にして求めるように変更した。
(require 'split-root) (defvar anything-compilation-window-height-percent 50.0) (defun anything-compilation-window-root (buf) (setq anything-compilation-window (split-root-window (truncate (* (frame-height) ;; ここ (/ anything-compilation-window-height-percent 100.0))))) (set-window-buffer anything-compilation-window buf)) (setq anything-display-function 'anything-compilation-window-root)
更に、以前書いた記事 [emacs][anything] anything-windowの動的縦横再分割とサイズの変更 - プログラム番長のヲボエガキ の、縦分割/横分割切り替え関数の併用で、完全にストレスフリーです。
(defun my-anything-toggle-resplit-window () (interactive) (when (anything-window) (save-selected-window (select-window (anything-window)) (let ((before-height (window-height))) (delete-other-windows) (switch-to-buffer anything-current-buffer) (if (= (window-height) before-height) (split-window-vertically) (split-window-horizontally))) (select-window (next-window)) (switch-to-buffer anything-buffer)))) (define-key anything-map "\C-o" 'my-anything-toggle-resplit-window)