При использовании двух кадров в emacs, как я могу предотвратить отображение буфера компиляции в обоих? - PullRequest
26 голосов
/ 22 июля 2010

Я работаю с двумя мониторами и часто использую emacs с двумя открытыми фреймами;по одному на каждый монитор.каждый кадр разбивается на два параллельных окна, например так:

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

Когда я нажимаю кнопку «Компилировать» в окне a, буфер компиляции открывается в буфере рядом с ним.Пока все хорошо:

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

Однако, если я затем перейду к окну c, чтобы отредактировать кое-что, а затем снова нажму на compile, окно d также посетит буфер компиляции:

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

Так что теперь у меня есть половина моего экрана, занятая двумя копиями одного и того же буфера компиляции, удивляясь, почему у меня два монитора:)

Я могу предотвратить это, добросовестно нажимая клавишу компиляции, только когда мойкурсор находится в буфере рядом с текущим открытым буфером компиляции, но я нажимаю «компиляция» так рано и часто, что у меня обычно не хватает на это ума.Я чувствую, что в .emacs должно быть что-то, что я могу настроить, поэтому мне не нужно.

Есть предложения?В идеале, когда я нажимаю «compile», текущий открытый буфер компиляции должен переместиться из своего предыдущего окна в окно рядом с текущим используемым окном.Если это слишком сложно, я бы легко согласился с тем, чтобы emacs не посещал буфер компиляции в соседнем окне, если он уже открыт в другом окне.

1 Ответ

28 голосов
/ 23 июля 2010
(setq-default display-buffer-reuse-frames t)

Из документации:

Не ноль означает, что display-buffer должен повторно использовать кадры.Если рассматриваемый буфер уже отображается в кадре, поднимите этот кадр.

...