Я работаю с двумя мониторами и часто использую emacs с двумя открытыми кадрами; один для каждого монитора. каждый кадр разделяется на два бок о бок окна, как так:
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
Таким образом, теперь у меня есть половина своего экранного агента по операциям с недвижимостью, поднятого двумя копиями того же буфера компиляции, задаваясь вопросом, почему у меня есть два монитора :)
Я могу предотвратить это путем добросовестно только нажатия клавиши компиляции, когда мой курсор находится в буфере рядом с в настоящее время открытым буфером компиляции, но я поражал 'компиляцию' настолько рано и часто что у меня обычно нет присутствия духа, чтобы сделать так. Я чувствую, что должно быть что-то, что я могу настроить в .emacs, таким образом, я не должен иметь к.
Какие-либо предложения? Идеально, когда я поразил 'компиляцию', в настоящее время открытый буфер компиляции должен переместиться от его предыдущего окна до того рядом с в настоящее время используемым окном. Если бы это слишком сложно, я легко согласился бы на наличие emacs не, посещают буфер компиляции в соседнем окне, если это уже открыто в другом окне.
(setq-default display-buffer-reuse-frames t)
Из документации:
Non-nil означает, что `display-buffer' должен повторно использовать кадры. Если рассматриваемый буфер уже отображается во фрейме, поднимите этот фрейм.