Позиционирование фреймов

Модератор: /dev/random

nwo
Сообщения: 25
ОС: Debian Lenny

Позиционирование фреймов

Сообщение nwo »

Можно ли в emacs задать, чтобы всякие логи, возникающие в результате, например, компиляции tex-файла, открывались в определённом буфере, а не заменяли другой редактируемый файл и не занимались самостоятельным разбиением на фреймы?
Например, картина следующая:

Код: Выделить всё

|                  |                |
|                  | something      |
|                  |   else         |
|      TEX         |                |
|                  |-----------------
|                  |                |
|                  |    Log and     |
|                  |   error        |
|                  |   handling     |

И мне надо бы, чтобы при любых обстоятельствах логи и прочее, вываливающееся автоматом, вылазило исключительно в правом нижнем фрейме.
В принципе, конечно, можно использовать dedicated-mode для остальных фреймов, но это будет означать, что в них нельзя будет поменять буферы, поскольку они крепко прибиты гвоздями.

Есть какие-нибудь соображения на это счёт? Заранее спасибо!
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Позиционирование фреймов

Сообщение watashiwa_daredeska »

Прямого способа нет. Начиная с GNU Emacs 22.1 всё упирается в функцию (compilation-start COMMAND &optional MODE NAME-FUNCTION HIGHLIGHT-REGEXP), где NAME-FUNCTION - функция вида (NAME-FUNCTION MODE-NAME), которая должна возвращать имя буфера, в который пойдут результаты компиляции. (compile) вызывает (compilation-start) без этого аргумента, поэтому имя буфера формируется на основе имени моды — «compilation». Кроме того, compilation-start pop-up'ит буфер функцией (display-buffer BUFFER).

Вот, откуда-то отсюда и надо начинать плясать — переопределять (compile), (display-buffer), чтобы всё текло в один нужный буфер и буфер pop-up'ался так, как нужно.
Спасибо сказали: