2画面分割とhelm
私のEmacsの使い方は、フルスクリーンでC-x 3
で左右に分割した2画面固定スタイルです。
このとき、helmを使うとhelmの候補選択bufferが、既存のbufferを使いまわしたり、上下分割状態になったりと悲しい動きをします。(私の環境だけ?)
こんなかんじ:
私の理想とする動きは、VisualStudioの自動的に隠すウィンドウのように、左右分割したbufferに乗っかって画面下からニョキっと出てくれると嬉しいのです。
こんなかんじ:
実現手段 : __popwin.el__を使う
__popwin.el__はEmacsのbuffer管理上でpopup windowのようなbufferを実現するパッケージです。
melpa-stableからpackage install popwin
できると思います。
こいつを使うと指定のbuffer名のbufferが_display-buffer_されたとき、他のbufferに乗っかる形のbufferを作ってくれます。
詳しくは作者様のページへ[Emacs] ヘルプバッファや補完バッファをポップアップで表示してくれるpopwin.elをリリースしました
これで万事OKなのですが、もう1点。
helmの_display-buffer_は独自のものみたいで、popwinのフックに乗りません(詳しいことはわかりませんが)
なのでhelm独自の_display-buffer_を標準のに上書きします。
(setq helm-display-function #'display-buffer)
設定例
;; helm bufferをpopupする
(setq helm-display-function #'display-buffer)
(when (require 'popwin)
(setq display-buffer-function 'popwin:display-buffer)
(setq popwin:special-display-config
'(("*complitation*" :noselect t)
("helm" :regexp t :height 0.4))))
;; helmをbuffer名に含んでたら良いので、これだけでhelm-M-x,helm-find-files等に対応できます
おわりに
もしかしたらhelm使ってる皆様に於かれましては常識ですかね?