Come impostare Windows predefinito all'avvio?


18

Ogni volta che apro Emacs tendo a configurare 3 finestre facendo C-x 3( split-window-right) e poi C-x2( split-window-below). Dopodiché devo passare a ciascuna finestra per aprire i file che voglio modificare.

Come posso impostare questo per farlo automaticamente?

Esiste un modo per consentire a Emacs di recuperare la stessa organizzazione dello schermo (finestre e file) dall'ultimo utilizzo?

Risposte:


13

Da Emacs 24.4, è possibile utilizzare la modalità desktop-save-mode . Fa parte di Emacs da secoli, ma il layout della finestra viene salvato e ripristinato solo dalla versione 24.4.

Aggiungi questa riga nel tuo file init:

(desktop-save-mode 1)

3
Ciò ripristinerà i file della sessione precedente, ma non ripristinerà il layout della finestra.
itsjeyd

1
No, l'ho provato. Manuale Emacs : una volta salvato il desktop Emacs (i buffer, i nomi dei file, le modalità principali, le posizioni del buffer e così via), le successive sessioni Emacs ricaricano il desktop salvato.
Sviridov Alexander,

3
"Posizione buffer" si riferisce alla posizione del punto (il cursore) in un dato buffer. Sì, questo verrà ripristinato con desktop-save-mode. Il layout della finestra si riferisce a quante finestre sono attualmente visualizzate e come sono posizionate. desktop-save-modenon conserva questo layout.
itsjeyd

3
Sì, "layout della finestra" e "posizione del buffer" sono cose diverse, hai ragione. Ma il layout della mia finestra è stato ripristinato. Sembra che il salvataggio del layout della finestra sia stato aggiunto in emacs-snapshot.
Sviridov Alexander,

1
@pors, non sembra il caso se si utilizza Emacs (24.4 o versioni successive) in modalità terminale. Nessuna configurazione della finestra viene salvata / ripristinata.
Skyork,

7

scrivi una funzione simile a quella nel tuo file init, probabilmente dovrai modificarla un po 'per adattarla alle tue esigenze:

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

c'è un modo per far sì che Emacs recuperi la stessa organizzazione dello schermo (finestre e file) dall'ultimo utilizzo?

Dovresti dare un'occhiata al pacchetto di layout


6

È possibile utilizzare workgroups2per gestire il desktop. Dal README su GitHub:

Workgroups è un gestore di sessioni per Emacs.

  • Salva tutti i buffer aperti, la loro posizione e dimensioni sul disco per ripristinarli in seguito
  • È possibile creare diverse aree di lavoro

Puoi anche ripristinare buffer come: org-agenda, shell, magit-status, help.

Se il repository MELPA è abilitato, è possibile installare questo pacchetto tramite M-x package-install RET workgroups2 RET.

L'impostazione di base è:

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

Quando riavvii Emacs per la prima volta dopo aver aggiunto questo codice al tuo file init, workgroups2creerai automaticamente un gruppo di lavoro per te. È possibile verificare che ciò abbia avuto esito positivo controllando il *Messages*buffer per le seguenti informazioni:

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

Da questo punto in poi, Emacs salverà automaticamente la configurazione corrente di finestre e file all'uscita e la ripristinerà al successivo avvio.


2

Sto usando qualcosa modellato sul .emacs.d di sanityinc . Utilizza desktop-save-mode, ed è anche abbastanza intelligente da utilizzare frame-restorenelle versioni precedenti emacs. Dal readme per frame-restoreda package-list-packages:

Salva e ripristina i parametri dei frame Emacs.

Basta chiamare frame-restore' in yourinit.el ':

(Frame mode-ripristino-)

Si noti che da r113242 la modalità di salvataggio del desktop integrata ripristinerà i frame. Se si utilizza una build di snapshot di Emacs dopo questa revisione, si consiglia vivamente di utilizzare la modalità di salvataggio del desktop:

(Desktop-save-mode)

La modalità Ripristino frame visualizza un avviso in grassetto se abilitata in una build Emacs la cui modalità Desktop Save può ripristinare i frame.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.