A maneira integrada de fazer isso é com os registradores.
Por exemplo, use C-xrwapara salvar a configuração atual da janela para registrar a.
Em seguida, você pode usar a ligação incorporada C-x1para executardelete-other-windows
depois de terminar de examinar o arquivo único, use C-xrjapara retornar à configuração da janela salva no registro a.
Em resumo:
C-xrwa (salve a configuração no registro)
C-x1 (excluir outras janelas)
C-xrja (reaplicar a configuração da janela salva)
Porém, acho que os registros são pesados, eu uso uma pilha de configuração de janela personalizada para gerenciar minhas configurações.
Eu tenho duas ligações que colocam a configuração atual na pilha e pop e aplicam a configuração superior.
Portanto, no seu cenário, eu executaria minha ligação push, depois Cx 1, e depois executaria minha ligação pop.
Aqui está o código:
(defvar winstack-stack '()
"A Stack holding window configurations.
Use `winstack-push' and
`winstack-pop' to modify it.")
(defun winstack-push()
"Push the current window configuration onto `winstack-stack'."
(interactive)
(if (and (window-configuration-p (first winstack-stack))
(compare-window-configurations (first winstack-stack) (current-window-configuration)))
(message "Current config already pushed")
(progn (push (current-window-configuration) winstack-stack)
(message (concat "pushed " (number-to-string
(length (window-list (selected-frame)))) " frame config")))))
(defun winstack-pop()
"Pop the last window configuration off `winstack-stack' and apply it."
(interactive)
(if (first winstack-stack)
(progn (set-window-configuration (pop winstack-stack))
(message "popped"))
(message "End of window stack")))
Então você pode ligar winstack-push
para algo como C-cC-u, e winstack-pop
para C-cC-oa facilmente saltar ao redor.
Eu uso
winner-mode
. Aqui está a minha configuração:Não sei se há uma maneira de marcar um layout ou algo assim, mas ser capaz de voltar continuamente ao layout anterior é suficiente para mim.
fonte
O Emacs oferece registros para salvar e aplicar dados como a sua configuração atual da janela, isso pode ser feito com
C-x r w
eC-x r j
. No entanto, essa abordagem fica difícil, pois é necessário lembrar os registros da janela.Existem alguns pacotes para melhorar isso. O iregister torna esse recurso básico mais inspecionável e interativo. Os outros que eu conheço usam sem afetar os registros, como elscreen e escreen, que usam a barra de cabeçalho para exibir guias. grupos de trabalho e grupos de trabalho2 são duas abordagens mais novas e mais abrangentes para esse problema. Pessoalmente, eu também não gostei e, portanto, escrevi o meu próprio que está em algum lugar no meio e, espero, tem menos bugs e complexidade.
fonte
(window-configuration-to-register "1")
como um comando no meu .emacs, mas não funcionouVocê pode salvar o layout atual da janela em um registro e restaurá-lo usando
jump-to-register
. O comandowindow-configuration-to-register
está vinculadoC-x r w
por padrão.Por exemplo, quando você organiza suas janelas de uma maneira útil, pode salvá-las para se registrar
i
usando:C-x r w i
e restaurar o layout posteriormente usandoC-x r j i
.fonte
O Zygospore fornece uma solução rápida para a situação em que você tem várias janelas abertas e deseja maximizar temporariamente uma delas. Ele modifica o comportamento de
C-x 1
. Quando você tem várias janelas abertas, ele se comporta como o padrãodelete-other-windows
e remove todas as janelas, exceto a que você está visualizando. Quando você pressiona novamente, restaura as outras janelas.O modo Vencedor fornece uma solução mais geral, mas o zygospore é ótimo para ampliar temporariamente uma única janela em um quadro. O melhor é que ele não usa nenhuma nova combinação de teclas - ela redefine de
C-x 1
uma maneira muito intuitiva, portanto não há novas combinações para aprender.fonte
Esta é uma pergunta interessante. Vários anos atrás eu investiguei todas as soluções. Somente workgroups2.el é pesado o suficiente para cobrir todos os casos de canto.
Mas a interface do usuário para grupos de trabalho2 é um desastre. Por exemplo, se você ativar o modo de grupo de trabalho (como sugerido pelo README), o layout anterior será carregado automaticamente durante a inicialização do emacs. Isso torna a inicialização extremamente lenta a cada momento.
Minha solução é tratar os grupos de trabalho2 como uma coleção de API em vez de uma ferramenta utilizável pronta para uso. Então, mudo sua interação padrão da interface do usuário usando o modo ivy ( https://github.com/abo-abo/swiper ) de @ abo-abo
Alternar janela cheia é fácil, use APIs do modo vencedor é suficiente.
Aqui está o código completo (eu só uso
M-x toggle-full-window
,M-x wg-create-workgroup
eM-x my-wg-switch-workgroup
, você também precisa instalar swiper, como mencionei acima),fonte