Як налаштувати Windows за замовчуванням при запуску?


18

Кожен раз, коли я відкриваю Emacs, я прагну встановити 3 вікна, роблячи C-x 3( split-window-right), а потім C-x2( split-window-below). Після цього мені потрібно перейти до кожного вікна, щоб відкрити файли, які я хочу редагувати.

Як зробити так, щоб це було зроблено автоматично?

Чи є спосіб Emacs відновити ту саму організацію екрана (Windows та файли) з останнього використання?

Відповіді:


13

Оскільки Emacs 24.4, ви можете використовувати режим збереження на робочому столі . Він був частиною Emacs протягом віків, але макет вікна зберігається та відновлюється лише з версії 24.4.

Просто додайте цей рядок у свій файл init:

(desktop-save-mode 1)

3
Це відновить файли з попереднього сеансу, але не відновить макет вікна.
itsjeyd

1
Ні, я тестував це. Посібник по Emacs : Після збереження робочого столу Emacs - буфери, назви їхніх файлів, основні режими, положення буфера і так далі - наступні сесії Emacs перезавантажують збережений робочий стіл.
Свиридов Олександр

3
"Позиція буфера" позначає положення точки (курсору) у заданому буфері. Так, це буде відновлено за допомогою desktop-save-mode. Макет вікна означає, скільки вікон в даний час відображається та як вони розташовані. desktop-save-modeне зберігає цю компоновку.
itsjeyd

3
Так, "макет вікна" та "позиція буфера" - це різні речі, ви правильно. Але моє вікно було відновлено. Схоже, збереження макета вікна було додано в emacs-знімок.
Свиридов Олександр

1
@pors, мабуть, це не так, якщо ви використовуєте Emacs (24.4 або вище) у термінальному режимі. Конфігурація вікна не зберігається / не відновлюється.
skyork

7

написати функцію, близьку до тієї, у ваш файл init, ймовірно, вам доведеться її трохи змінити, щоб відповідати вашим потребам:

;; layout definition
(defun my-startup-layout ()
 (interactive)
 (delete-other-windows)
 (split-window-horizontally) ;; -> |
 (next-multiframe-window)
 (find-file "~/.emacs.d/init.el")
 (split-window-vertically) ;;  -> --
 (next-multiframe-window)
 (find-file "~/.emacs.d/init_settings.el")
 (next-multiframe-window)
 (dired "~")
)

;; execute the layout
(my-startup-layout )

чи є можливість Emacs відновити ту саму організацію екрана (windows та файли) з останнього використання?

Ви повинні ознайомитися з пакетом макетів


6

Ви можете використовувати workgroups2для керування робочим столом. З README на GitHub:

Робочі групи - це менеджер сеансів для Emacs.

  • Він зберігає всі ваші відкриті буфери, їх розташування та розміри на диску, щоб відновити їх згодом
  • Можна створити кілька робочих просторів

Ви також можете відновити такі буфери, як: org-порядок денний, оболонка, magit-status, help.

Якщо у вас включено сховище MELPA , ви можете встановити цей пакет через M-x package-install RET workgroups2 RET.

Основна установка:

(require 'workgroups2)
(workgroups-mode 1) ; This should go at the end of your init file

Якщо ви вперше перезапустите Emacs після додавання цього коду до файлу init, workgroups2він автоматично створить робочу групу для вас. Ви можете переконатися, що це було успішно, перевіривши *Messages*буфер на наступну інформацію:

Workgroups Mode: on
Switched: First workgroup
Created: First workgroup  ( -<{ 0: First workgroup }>- )

З цього моменту Emacs автоматично збереже поточну конфігурацію Windows та файлів при виході та відновить її наступного разу, коли вона запуститься.


2

Я використовував щось за моделюванням після .emacs.d sanityinc . Він використовує desktop-save-mode, а також досить розумний для використання frame-restoreу старих версіях emacs. З readme для frame-restoreвід package-list-packages:

Збереження та відновлення параметрів кадрів Emacs.

Просто зателефонуйте на frame-restore' in yourinit.el ':

(режим відновлення кадру)

Зауважте, що з r113242 вбудований режим збереження робочого столу буде відновлювати кадри. Якщо ви використовуєте збірку знімків Emacs пізніше цієї версії, настійно рекомендуємо замість цього використовувати режим збереження на робочому столі:

(режим збереження на робочому столі)

Режим відновлення кадру відображатиме жирне попередження, якщо його увімкнено у складі Emacs, режим збереження на робочому столі якого може відновити кадри.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.