Comment configurer les fenêtres par défaut au démarrage?

18

Chaque fois que j'ouvre Emacs, j'ai tendance à configurer 3 fenêtres en faisant C-x 3( split-window-right) puis C-x2( split-window-below). Après cela, je dois basculer vers chaque fenêtre pour ouvrir les fichiers que je souhaite modifier.

Comment puis-je configurer cela pour qu'il se fasse automatiquement?

Existe-t-il un moyen pour qu'Emacs récupère la même organisation d'écran (fenêtres et fichiers) à partir de la dernière utilisation?

El Diego Efe
la source

Réponses:

13

Depuis Emacs 24.4, vous pouvez utiliser le mode de sauvegarde du bureau . Cela fait partie d'Emacs depuis des siècles, mais la disposition des fenêtres n'est enregistrée et restaurée que depuis la version 24.4.

Ajoutez simplement cette ligne dans votre fichier init:

(desktop-save-mode 1)
Sviridov Alexander
la source
3
Cela restaurera les fichiers de la session précédente, mais ne restaurera pas la disposition des fenêtres.
itsjeyd
1
Non, je l'ai testé. Manuel Emacs : Une fois que vous avez enregistré le bureau Emacs - les tampons, leurs noms de fichier, les principaux modes, les positions des tampons , etc. -, les sessions Emacs suivantes rechargent le bureau enregistré.
Sviridov Alexander
3
"Position du tampon" fait référence à la position du point (le curseur) dans un tampon donné. Oui, cela sera restauré avec desktop-save-mode. La disposition des fenêtres fait référence au nombre de fenêtres actuellement affichées et à leur positionnement. desktop-save-modene conserve pas cette disposition.
itsjeyd
3
Oui, "disposition des fenêtres" et "position du tampon" sont des choses différentes, vous avez raison. Mais ma disposition des fenêtres a été restaurée. Il semble que l'enregistrement de la disposition des fenêtres ait été ajouté dans emacs-snapshot.
Sviridov Alexander
1
@pors, cela ne semble pas être le cas si vous utilisez Emacs (24.4 ou supérieur) en mode terminal. Aucune configuration de fenêtre n'est enregistrée / restaurée.
skyork
7

écrivez une fonction proche de celle-ci dans votre fichier init, vous devrez probablement la modifier un peu pour l'adapter à vos besoins:

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

Existe-t-il un moyen pour qu'Emacs récupère la même organisation d'écran (fenêtres et fichiers) à partir de la dernière utilisation?

Vous devriez jeter un œil au package de mise en page

Nsukami _
la source
6

Vous pouvez utiliser workgroups2pour gérer votre bureau. Du README sur GitHub:

Workgroups est un gestionnaire de session pour Emacs.

  • Il enregistre tous vos tampons ouverts, leur emplacement et leur taille sur le disque pour les restaurer plus tard
  • Vous pouvez créer plusieurs espaces de travail

Vous pouvez également restaurer des tampons tels que: org-agenda, shell, magit-status, help.

Si le référentiel MELPA est activé, vous pouvez installer ce package via M-x package-install RET workgroups2 RET.

La configuration de base est la suivante:

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

Lorsque vous redémarrez Emacs pour la première fois après avoir ajouté ce code à votre fichier init, workgroups2crée automatiquement un groupe de travail pour vous. Vous pouvez vérifier que cela a réussi en vérifiant le *Messages*tampon pour les informations suivantes:

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

À partir de ce moment, Emacs enregistrera automatiquement la configuration actuelle des fenêtres et des fichiers à la sortie, et la restaurera au prochain démarrage.

itsjeyd
la source
2

J'ai utilisé quelque chose sur le modèle de .emacs.d de sanityinc . Il utilise desktop-save-mode, et est également assez intelligent pour utiliser frame-restoresur les anciennes versions d'emacs. Du readme pour frame-restorede package-list-packages:

Enregistrez et restaurez les paramètres des cadres Emacs.

Appelez simplement frame-restore' in yourinit.el ':

(mode de restauration de trame)

Notez que depuis r113242, le mode d'enregistrement de bureau intégré restaurera les cadres. Si vous utilisez une génération d'instantanés Emacs plus tard que cette révision, il est fortement conseillé d'utiliser le mode d'enregistrement de bureau à la place:

(mode de sauvegarde du bureau)

Le mode Frame Restore affichera un avertissement en gras s'il est activé dans une génération Emacs dont le mode Desktop Save peut restaurer des cadres.

Mr. Wacky
la source