Emacs: всплывающее нижнее окно для временных буферов - PullRequest
10 голосов
/ 18 февраля 2011

Я хотел бы иметь всплывающее нижнее окно для временных буферов, таких как , компиляция , Завершения и т. Д. Он должен разделять по вертикали весь кадр, даже если корневое окно было разделенопо горизонтали.Например: до компиляции Mx:

+------+------+
|      |      |
|      |      |
|      |      |
+------+------+

После:

+------+------+
|      |      |
+------+------+
|             |
+------+------+

Я абсолютно доволен ecb-compilation-window , но я не удовлетворенхочу использовать ECB и CEDET.На самом деле я вижу два способа описанного поведения, но оба имеют свои недостатки.

Недостаток: он использует функцию delete-other-windows, а затем восстанавливает предыдущее дерево окон после того, как корневое окно разделяется по мере необходимости.Он делает недействительными все ссылки на существующие более ранние окна в вашем коде (или коде любого модуля).

  • Установите переменную window-min-height в минимально возможное значение (1) и вызовите split-window-verticalво время запуска emacs минимизирует высоту окна после его создания.Затем используйте это окно для временных буферов, устанавливая его высоту как требуется.

Недостатки: Небольшое раздражающее окно с раздражающей моделиной в нижней части фрейма, не работает с emacs --deemon.

Есть ли более элегантные способы сделать это без недостатков ?

1 Ответ

13 голосов
/ 19 февраля 2011

Использование popwin !

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

(push '("\ * что угодно *": регулярное выражение t: высота 20) popwin: special-display-config)

Есть еще несколькоподробные примеры конфигурации, плавающие вокруг японских блогов, просто гуглите.

...