Wie richte ich Standardfenster beim Start ein?


18

Jedes Mal, wenn ich Emacs öffne, richte ich mit C-x 3( split-window-right) und dann C-x2( split-window-below) drei Fenster ein . Danach muss ich in jedes Fenster wechseln, um die Dateien zu öffnen, die ich bearbeiten möchte.

Wie kann ich festlegen, dass dies automatisch erfolgt?

Gibt es eine Möglichkeit, dass Emacs dieselbe Bildschirmorganisation (Fenster und Dateien) nach der letzten Verwendung wiederherstellt?

Antworten:


13

Seit Emacs 24.4 können Sie den Desktop-Speichermodus verwenden . Es ist seit Ewigkeiten Teil von Emacs, aber das Fensterlayout wird erst seit Version 24.4 gespeichert und wiederhergestellt.

Fügen Sie einfach diese Zeile in Ihre Init-Datei ein:

(desktop-save-mode 1)

3
Dadurch werden Dateien aus der vorherigen Sitzung wiederhergestellt, das Fensterlayout wird jedoch nicht wiederhergestellt.
Es ist der

1
Nein, ich habe es getestet. Emacs - Handbuch : Sobald Sie den Emacs Desktop speichern - die Puffer, deren Dateinamen, Hauptmodi, Pufferpositionen , und so weiter - dann nachfolgende Emacs - Sitzungen die gespeicherte Desktop neu zu laden.
Sviridov Alexander

3
"Pufferposition" bezieht sich auf die Position des Punktes (des Cursors) in einem gegebenen Puffer. Ja, dies wird mit wiederhergestellt desktop-save-mode. Fensterlayout bezieht sich darauf, wie viele Fenster aktuell angezeigt werden und wie sie positioniert sind. desktop-save-modebehält dieses Layout nicht bei.
Es ist der

3
Ja, "Fensterlayout" und "Pufferposition" sind verschiedene Dinge, Sie haben Recht. Aber meine Fensteranordnung wurde wiederhergestellt. Es sieht so aus, als ob das Speichern des Fensterlayouts in emacs-snapshot hinzugefügt wurde.
Sviridov Alexander

1
@pors, es scheint nicht der Fall zu sein, wenn Sie Emacs (24.4 oder höher) im Terminalmodus verwenden. Es wird keine Fensterkonfiguration gespeichert / wiederhergestellt.
Skyork

7

Wenn Sie eine Funktion in der Nähe dieser in Ihre Init-Datei schreiben, müssen Sie sie wahrscheinlich ein wenig an Ihre Bedürfnisse anpassen:

;; 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 )

Gibt es eine Möglichkeit, Emacs die gleiche Bildschirmorganisation (Fenster und Dateien) von der letzten Verwendung wiederherstellen zu lassen?

Sie sollten sich das Layout- Paket ansehen


6

Mit können Sie workgroups2Ihren Desktop verwalten. Aus der README auf GitHub:

Workgroups ist ein Sitzungsmanager für Emacs.

  • Alle geöffneten Puffer, ihre Position und Größe werden auf der Festplatte gespeichert und später wiederhergestellt
  • Sie können mehrere Arbeitsbereiche erstellen

Sie können auch Puffer wiederherstellen wie: org-agenda, shell, magit-status, help.

Wenn Sie das MELPA- Repository aktiviert haben, können Sie dieses Paket über installieren M-x package-install RET workgroups2 RET.

Das Grundsetup ist:

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

Wenn Sie Emacs nach dem Hinzufügen dieses Codes zu Ihrer Init-Datei zum ersten Mal neu starten, workgroups2wird automatisch eine Arbeitsgruppe für Sie erstellt. Sie können überprüfen, ob dies erfolgreich war, indem Sie den *Messages*Puffer auf die folgenden Informationen überprüfen :

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

Ab diesem Zeitpunkt speichert Emacs die aktuelle Konfiguration von Fenstern und Dateien automatisch beim Beenden und stellt sie beim nächsten Start wieder her.


2

Ich habe etwas verwendet, das Sanityincs .emacs.d nachempfunden ist . Es verwendet desktop-save-mode, und ist auch schlau genug, um frame-restoreauf älteren Versionen Emacs zu verwenden. Aus der Readme für frame-restorevon package-list-packages:

Speichern und Wiederherstellen der Parameter von Emacs-Frames.

Rufen frame-restore' in yourSie einfach init.el 'auf:

(Frame-Restore-Modus)

Beachten Sie, dass der integrierte Desktop-Speichermodus seit r113242 Frames wiederherstellt. Wenn Sie einen Emacs-Snapshot-Build später als in dieser Version verwenden, wird dringend empfohlen, stattdessen den Desktop-Speichermodus zu verwenden:

(Desktop-Speichermodus)

Der Frame-Wiederherstellungsmodus zeigt eine fette Warnung an, wenn er in einem Emacs-Build aktiviert ist, dessen Desktop-Speichermodus Frames wiederherstellen kann.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.