¿Cómo configurar ventanas predeterminadas al inicio?

18

Cada vez que abro Emacs tiendo a configurar 3 ventanas haciendo C-x 3( split-window-right) y luego C-x2( split-window-below). Después de eso, tengo que cambiar a cada ventana para abrir los archivos que quiero editar.

¿Cómo puedo configurar esto para que se haga automáticamente?

¿Hay alguna manera de que Emacs recupere la misma organización de pantalla (ventanas y archivos) desde el último uso?

El Diego Efe
fuente

Respuestas:

13

Desde Emacs 24.4, puede usar el modo guardar escritorio . Ha sido parte de Emacs durante siglos, pero el diseño de la ventana solo se guarda y restaura desde la versión 24.4.

Simplemente agregue esta línea en su archivo de inicio:

(desktop-save-mode 1)
Sviridov Alexander
fuente
3
Esto restaurará los archivos de la sesión anterior, pero no restaurará el diseño de la ventana.
itsjeyd
1
No, lo he probado. Manual de Emacs : una vez que guarda el escritorio de Emacs (los búferes, sus nombres de archivo, modos principales, posiciones de búfer , etc.), las sesiones posteriores de Emacs vuelven a cargar el escritorio guardado.
Sviridov Alexander
3
"Posición del búfer" se refiere a la posición del punto (el cursor) en un búfer dado. Sí, esto se restaurará con desktop-save-mode. El diseño de la ventana se refiere a cuántas ventanas se muestran actualmente y cómo se colocan. desktop-save-modeno conserva este diseño.
itsjeyd
3
Sí, "diseño de ventana" y "posición de búfer" son cosas diferentes, estás en lo correcto. Pero el diseño de mi ventana fue restaurado. Parece que se agregó guardar el diseño de la ventana en emacs-snapshot.
Sviridov Alexander
1
@pors, parece que no es el caso si está utilizando Emacs (24.4 o superior) en modo terminal. No se guarda / restaura la configuración de la ventana.
skyork
7

escriba una función cercana a esa en su archivo init, probablemente tendrá que modificarla un poco para satisfacer sus necesidades:

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

¿Hay alguna manera de hacer que Emacs recupere la misma organización de pantalla (ventanas y archivos) desde el último uso?

Deberías echar un vistazo al paquete de diseño

Nsukami _
fuente
6

Puede usar workgroups2para administrar su escritorio. Desde el archivo README en GitHub:

Workgroups es un administrador de sesión para Emacs.

  • Guarda todos los búferes abiertos, su ubicación y tamaños en el disco para restaurarlos más tarde
  • Puedes crear varios espacios de trabajo

También puede restaurar buffers como: org-agenda, shell, magit-status, help.

Si tiene habilitado el repositorio MELPA , puede instalar este paquete a través de M-x package-install RET workgroups2 RET.

La configuración básica es:

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

Cuando reinicie Emacs por primera vez después de agregar este código a su archivo init, workgroups2automáticamente creará un grupo de trabajo para usted. Puede verificar que esto fue exitoso al verificar el *Messages*buffer para la siguiente información:

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

A partir de este momento, Emacs guardará la configuración actual de ventanas y archivos automáticamente al salir, y la restaurará la próxima vez que se inicie.

itsjeyd
fuente
2

He estado usando algo inspirado en el .emacs.d de sanityinc . Utiliza desktop-save-mode, y también es lo suficientemente inteligente como para usar frame-restoreen versiones anteriores de emacs. Del archivo Léame para frame-restorede package-list-packages:

Guarde y restaure los parámetros de los marcos de Emacs.

Solo llame a frame-restore' in yourinit.el ':

(modo de restauración de cuadro)

Tenga en cuenta que desde r113242 el modo de guardado de escritorio incorporado restaurará los marcos. Si está utilizando una compilación de instantáneas de Emacs después de esta revisión, se recomienda encarecidamente usar el modo Guardar escritorio en su lugar:

(escritorio-guardar-modo)

El modo Restaurar cuadro mostrará una advertencia en negrita si está habilitado en una compilación de Emacs cuyo modo Guardar escritorio puede restaurar cuadros.

Señor loco
fuente