Como configurar o Windows padrão na inicialização?

18

Toda vez que abro o Emacs, costumo configurar 3 janelas fazendo C-x 3( split-window-right) e depois C-x2( split-window-below). Depois disso, tenho que mudar para cada janela para abrir os arquivos que quero editar.

Como posso definir isso para ser feito automaticamente?

Existe uma maneira de o Emacs recuperar a mesma organização de tela (janelas e arquivos) do último uso?

El Diego Efe
fonte

Respostas:

13

Desde Emacs 24.4, você pode usar desktop save-mode . Faz parte do Emacs há muito tempo, mas o layout da janela é salvo e restaurado apenas desde a versão 24.4.

Basta adicionar esta linha no seu arquivo init:

(desktop-save-mode 1)
Sviridov Alexander
fonte
3
Isso restaurará os arquivos da sessão anterior, mas não restaurará o layout da janela.
precisa saber é o seguinte
1
Não, eu testei. Manual do Emacs : Depois de salvar a área de trabalho do Emacs - os buffers, seus nomes de arquivo, modos principais, posições de buffer etc. - as sessões subsequentes do Emacs recarregam a área de trabalho salva.
Sviridov Alexander
3
"Posição do buffer" refere-se à posição do ponto (o cursor) em um determinado buffer. Sim, isso será restaurado com desktop-save-mode. O layout da janela refere-se a quantas janelas são exibidas no momento e como estão posicionadas. desktop-save-modenão preserva esse layout.
itsjeyd
3
Sim, "layout da janela" e "posição do buffer" são coisas diferentes, você está correto. Mas o layout da minha janela foi restaurado. Parece que a economia do layout da janela foi adicionada ao emacs-snapshot.
Sviridov Alexander
1
@pors, não parece ser o caso se você estiver usando o Emacs (24.4 ou superior) no modo terminal. Nenhuma configuração de janela é salva / restaurada.
skyork
7

Se você escrever uma função próxima a essa em seu arquivo init, provavelmente precisará modificá-la um pouco para atender às suas necessidades:

;; 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 uma maneira de o Emacs recuperar a mesma organização de tela (janelas e arquivos) do último uso?

Você deve dar uma olhada no pacote de layout

Nsukami _
fonte
6

Você pode usar workgroups2para gerenciar sua área de trabalho. Do README no GitHub:

Grupos de trabalho é um gerenciador de sessões para o Emacs.

  • Ele salva todos os seus buffers abertos, sua localização e tamanhos no disco para restaurar posteriormente
  • Você pode criar vários espaços de trabalho

Você também pode restaurar buffers como: org-agenda, shell, magit-status, help.

Se você tiver o repositório MELPA ativado, poderá instalar este pacote via M-x package-install RET workgroups2 RET.

A configuração básica é:

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

Quando você reiniciar o Emacs pela primeira vez após adicionar esse código ao seu arquivo init, workgroups2criará automaticamente um grupo de trabalho para você. Você pode verificar se isso foi bem-sucedido, verificando o *Messages*buffer para as seguintes informações:

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

A partir deste momento, o Emacs salvará a configuração atual de janelas e arquivos automaticamente na saída e a restaurará na próxima vez em que for iniciada.

itsjeyd
fonte
2

Eu tenho usado algo modelado com o .emacs.d da sanityinc . Ele usa desktop-save-modee também é inteligente o suficiente para usar frame-restoreem versões mais antigas do emacs. Do leia-me para frame-restorede package-list-packages:

Salve e restaure parâmetros dos quadros do Emacs.

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

(modo de restauração de quadro)

Observe que, desde r113242, o modo interno de economia de área de trabalho restaurará os quadros. Se você estiver usando uma compilação de instantâneo do Emacs depois desta revisão, é altamente recomendável usar o modo de economia da área de trabalho:

(modo de salvamento na área de trabalho)

O modo Restauração de Quadro exibirá um aviso em negrito se ativado em uma compilação do Emacs cujo modo de Economia da Área de Trabalho possa restaurar quadros.

Mr. Wacky
fonte