Emacsでhelmを縦に分割したウィンドウで開く

[追記:2013-12-18]

popwinの設定でpopwin:adjust-other-windowstにするとウィンドウが狭くなるのが回避できました。またpopwinでhelmを使っています。

[追記ここまで]

helmでウィンドウを開くときに、今までpopwinを使って右端の縦分割ウィンドウに開くように設定していた。

(push '("^\\*helm" :regexp t :width 60 :position :right) popwin:special-display-config)

・・んだけど、この設定だと、水平分割したウィンドウがあるときになぜかhelmのウィンドウが狭くなってしまう。じゃあ、左に表示するかと、:position :leftとしてみると、こんどはhelmを終了した時に開いていたウィンドウが消えてしまう事象が発生。helmとpopwinの相性の悪さかなあ。。結局迷った挙句、helmではpopwinを使わないようにした。dirtreeでも使われているwindataというライブラリでこのへんを簡単にできるみたい。

上記の設定を消して、

(require 'windata)
(setq helm-windata '(frame left 0.3 nil))
(defun my/helm-display-buffer (buffer)
  (apply 'windata-display-buffer buffer helm-windata))
(setq helm-display-function 'my/helm-display-buffer)

(require 'helm)

とした。helm-windataleftrightにすれば、右側に表示できる。