26

私は2台のモニターを使用しており、2つのフレームを開いた状態でemacsを使用することがよくあります。モニターごとに1つ。各フレームは、次のように2つの並んだウィンドウに分割されます。

 a | b   <-- frame 1 in monitor 1
-------
 c | d   <-- frame 2 in monitor 2

ウィンドウaで「コンパイル」ボタンを押すと、コンパイルバッファがその隣のバッファで開きます。ここまでは順調ですね:

 a | compilation
-----------------
 c |     d

ただし、ウィンドウcに移動して編集を行い、もう一度コンパイルを押すと、ウィンドウdもコンパイルバッファーにアクセスします。

 a | compilation
------------------
 c | compilation

これで、画面の半分が同じコンパイルバッファの2つのコピーで占められ、なぜ2つのモニターがあるのか​​疑問に思います:)

カーソルが現在開いているコンパイルバッファの隣のバッファにあるときにのみコンパイルキーを誠実に押すことでこれを防ぐことができますが、「コンパイル」を非常に早く、頻繁に押すので、通常はそうする気がありません。.emacsで微調整できるものがあるはずなので、そうする必要はないはずです。

助言がありますか?理想的には、「コンパイル」を押すと、現在開いているコンパイルバッファが、前のウィンドウから現在使用されているウィンドウの隣のウィンドウに移動するはずです。それが複雑すぎる場合は、emacsがすでに別のウィンドウで開いている場合は、隣接するウィンドウのコンパイルバッファーにアクセスしないようにすることで簡単に解決できます。

4

1 に答える 1

29
(setq-default display-buffer-reuse-frames t)

ドキュメントから:

非nilは、`display-buffer'がフレームを再利用する必要があることを意味します。問題のバッファがすでにフレームに表示されている場合は、そのフレームを上げます。

于 2010-07-22T21:08:04.457 に答える