5

Я почти всегда использую Emacs в конфигурации с одним кадром и двумя окнами (то есть в одном окне ОС с двумя окнами Emacs внутри). У меня установлен default-frame-alist так что кадры отображаются в нужном размере, но затем я должен разделить их вручную (с помощью Cx 3). Есть ли способ заставить Emacs делать это автоматически при создании каждого нового фрейма?

РЕДАКТИРОВАТЬ: Если мне случится создать новый кадр в какой-то момент, я хочу, чтобы он также был разделен по вертикали. Следовательно, (when window-system (split-window-horizontally)) в .emacs не будет выполнять эту работу, поскольку она применяется только к начальному кадру. То, что мне нужно, - это ловушка, которая запускается в контексте каждого нового кадра после применения default-frame-alist .

3 ответа3

5

Просто добавь

(split-window-horizontally)

в ваш файл .emacs .

С помощью C-h k вы можете проверить, какая функция Emacs связана с вашим ярлыком. Это очень полезно, если вы недостаточно хорошо знакомы с функциями Emacs.

2

Чтобы предотвратить автоматическое вертикальное разделение буфера, например, при посещении элемента в буфере grep, настройка

(setq split-height-threshold nil split-width-threshold nil)

Полезно.

1

Это не совсем то, что вы просите, но это хороший способ получить два окна рядом.

Вы можете установить переменные split-height-threshold и split-width-threshold , чтобы разумно изменить поведение split-window-sensibly . Таким образом, каждый раз, когда появляется новое окно, например, при автозаполнении или нажатии o в буфере с задержкой, кадр разделяется по горизонтали.

;; only split horizontally
(setq split-height-threshold nil
      split-width-threshold 0)

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .