2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

helmのbufferをVisualStudioの自動的に隠すウィンドウっぽくする

Posted at

2画面分割とhelm

私のEmacsの使い方は、フルスクリーンでC-x 3で左右に分割した2画面固定スタイルです。
このとき、helmを使うとhelmの候補選択bufferが、既存のbufferを使いまわしたり、上下分割状態になったりと悲しい動きをします。(私の環境だけ?)
こんなかんじ:
ezgif.com-optimize(1).gif

私の理想とする動きは、VisualStudioの自動的に隠すウィンドウのように、左右分割したbufferに乗っかって画面下からニョキっと出てくれると嬉しいのです。
こんなかんじ:
ezgif.com-optimize(3).gif

実現手段 : __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-pop.el
;; 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使ってる皆様に於かれましては常識ですかね?

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?