display-buffer
が機能する方法 ¶display-buffer
コマンド(およびこのコマンドを内部的に呼び出すコマンド)は、以下で与えられたステップに従って、表示するウィンドウを選択します。このステップの順番を変更する方法については、Choosing a Window for Displaying a Buffer in The Emacs Lisp
Reference Manualを参照してください。
display-buffer-alist
(Choosing a Window for Displaying a Buffer in The
Emacs Lisp Reference
Manualを参照)にバッファー名にマッチする正規表現を追加して、アクション関数display-buffer-same-window
(Action Functions for Buffer Display in The Emacs Lisp Reference
Manualを参照)でそれを参照することにより、Emacsにスキップしないよう告げることができます。たとえば、選択されたウィンドウ内に優先的にバッファー*scratch*を表示するには、以下のように記述します:
(setopt display-buffer-alist '(("\\*scratch\\*" (display-buffer-same-window))))
デフォルトでは、display-buffer-alist
はnil
です。
reusable-frames
エントリー(Action Alists for Buffer Display in The Emacs
Lisp Reference
Manualを参照)を使用している場合は、他のフレームのウィンドウも再利用可能です。これを行う例は、次のステップを参照してください。
display-buffer-base-action
(Choosing a Window for Displaying a Buffer in The
Emacs Lisp Reference Manualを参照)の値を変更してください:
(setopt display-buffer-base-action '((display-buffer-reuse-window display-buffer-pop-up-frame) (reusable-frames . 0)))
このカスタマイズでは、すべての可視およびアイコン化されたフレーム上の再利用可能なウィンドウを検索するステップを先行して試みるでしょう。
分割は垂直または水平に行われる可能性があり、それは変数split-height-threshold
およびsplit-width-threshold
に依存します。これらの変数には整数値を指定します。split-height-threshold
が選択されたウィンドウの高さより小さい場合、分割により下が新しいウィンドウになります。上記以外の場合、split-width-threshold
が選択されたウィンドウの幅より小さい場合、分割により右が新しいウィンドウになります。どちらの条件も適用できなかったとき、Emacsは分割により下を新しいウィンドウにしようと試みますが、それは選択されたウィンドウが以前に分割されていなかった場合に限られます(過剰な分割を避けるため)。
reusable-frames
(上記参照)により、他のフレームのウィンドウかもしれません。