Загрузить файл Emacs и создать расположение окон при загрузке - PullRequest
0 голосов
/ 03 апреля 2019

Мне интересно, возможно ли и как в Emacs делать следующие вещи:

  1. Загружать определенный файл каждый раз, когда открывается Emacs.В частности, это файл .ORG, расположенный в домашнем каталоге пользователя.

  2. Создайте определенное расположение окон в этом фрейме Emacs.Рамка открыта как графический интерфейс, если это имеет значение.Например, это могут быть два вертикальных окна, одно из которых по очереди разделено на три меньших окна.

1 Ответ

2 голосов
/ 05 апреля 2019

Это несколько не элегантное решение, но вы могли бы просто запустить файл инициализации точно такими же командами, которые вы использовали бы для ручной настройки (используйте C-h f, чтобы помочь найти любые сочетания клавиш, названия команд которых у вас нет). не знаю).

Чтобы открыть файл, вы можете использовать команду find-file (команда, запускаемая C-x f). Вы можете использовать split-window-right и split-window-below (C-x 2 и C-x 3 соответственно), чтобы разделить окно. (Следует отметить, что есть более общая команда split-window, но я здесь ее избегаю, поскольку я просто повторяю то, что делал бы Emacs, если бы мы все настраивали вручную.) Команда other-window (C-x o) изменяет окна во фрейме - обратите внимание, что эта функция требует входной аргумент (количество окон, которое нужно перебрать), если не используется интерактивно.

Вы можете получить настройку, аналогичную той, о которой вы спрашивали (файл org слева, 3 горизонтальных разбиения справа, все отдельные пустые буферы) со следующими параметрами:

(find-file "ABSOLUTE-PATH-TO-FILE.org")
(split-window-right)
(other-window 1)
(split-window-below)
(switch-to-buffer "Fresh-Buffer-1")
(other-window 1)
(split-window-below)
(switch-to-buffer "Fresh-Buffer-2")
(other-window 1)
(switch-to-buffer "Fresh-Buffer-3")
(balance-windows)
(other-window 1)

Вы также можете использовать функции set-frame-height и / или set-frame-width, чтобы получить рамку подходящего размера (пример использования (set-frame-width (selected-frame) 120)). Кроме того, я бы рекомендовал поместить это в конец вашего файла инициализации, чтобы режимы буферов, которые вы создаете, не мешали ни одной из ваших других функций инициализации.

...