ある種のEmacsコマンドは、特別な内容を持つ特有のバッファに切り替えます。 たとえば、 M-x shellは、‘*Shell*’という名前のバッファに切り替えます。 慣習では、これらのすべてのコマンドは、 別のウィンドウにバッファを立ち上げるようにプログラムされています。 しかし、これらのバッファのいくつかを選択されている ウィンドウに表示するように指定できます。
バッファ名をリストsame-window-buffer-names
に追加すると、
そういったコマンドは、選択されているウィンドウで特定のバッファに切り替えます。
たとえば、そのリストに要素"*grep*"
を追加すれば、
grep
コマンドは、選択されているウィンドウにその出力バッファを表示します。
same-window-buffer-names
のデフォルト値はnil
ではありません。
(古いEmacsパッケージが使うものも含めて)
バッファ名、‘*info*’、‘*mail*’、‘*shell*’を指定してあります。
このため、M-x shellが通常は選択されているウィンドウで
‘*shell*’バッファに切り替えるのです。
もしこの要素をsame-window-buffer-names
から削除すると、
M-x shellのふるまいは変わります。
かわりに別のウィンドウでバッファを立ち上げます。
これらのバッファを、より一般的に変数same-window-regexps
で指定できます。
この変数には、正規表現のリストを設定します。
そうすると、正規表現の1つに一致するバッファはどれも、
選択されているウィンドウでバッファを切り替えて表示します。
(繰り返すが、これは、普通は別のウィンドウに
表示されるバッファのみにあてはまる。)
この変数のデフォルト値には、telnetバッファとrloginバッファが指定されています。
類似の機能で、独立したフレームに表示させるバッファを指定することができます。 See Special Buffer Frames。