Estou trabalhando em vários projetos no momento. Eu quero que uma única instância do Emacs lide com todos eles. O que eu quero é um comportamento semelhante ao tmux, em que cada 'janela' (no sentido Emacs) corresponde a um projeto que contém buffers dos arquivos relacionados a esse projeto. Existem várias janelas, cada uma correspondendo a um projeto e eu devo poder alternar entre elas (algo semelhante a C-b w
)
Essa funcionalidade já está presente de alguma forma? Eu acho que vai ser legal ter, pois as outras opções são:
- Tenha várias instâncias do Emacs abertas.
- Tenha todos os arquivos de todos os projetos em uma única instância, o que dificulta a troca de buffers.
ace-jump-mode
uma solução interessante para saltar rapidamente com o cursor em um buffer (se você ainda não o tiver).frame-bufs
. Consulte também Como interceptar um arquivo antes de abrir e decidir qual quadro - stackoverflow.com/questions/18346785/… - para exibir um buffer em um quadro de destino e você pode usarframe-buffs--add-buffer
em conjunto para associar o quadro. Você pode se casarframe-bufs
comtabbar
e buffers associado / remover dinamicamente: emacs.stackexchange.com/a/10112/2287frame-bufs
a buffers associado com um quadro específico: github.com/alpaker/Frame-Bufs/blob/master/frame-bufs.elRespostas:
Você pode usar a perspectiva para gerenciar projetos. Do seu README:
Há também uma outra versão do modo persp , que é um pouco diferente da original. As perspectivas são compartilhadas entre os quadros e os estados podem ser salvos no disco.
Se você estiver usando projétil , também haverá uma integração de perspectiva .
fonte
Você pode experimentar o modo de sobrancelha , que gerencia vários layouts de janela (talvez complicados). Você pode alternar entre configurações de janela pressionando teclas como
C-c C-w 1
eC-c C-w 2
.fonte
Uma solução "barebones" pode ser usada
C-x r w
para registrar o estado atual da janela eC-x r j
voltar ao estado anterior.fonte
Eu uso uma combinação de alguns pacotes diferentes.
Mais importante, eu uso o Projectile para trabalhar em um "projeto" e em arquivos de localização difusa. Uso vários quadros, um para cada projeto em que estou trabalhando. Você realmente só precisa conhecer
C-x 5 2
eC-x 5 0
criar / matar um quadro. Para gerenciar a alternância entre projetos e para armazenar o estado da configuração / divisão de janelas , eu uso Grupos de Trabalho para janelas (para emacs) .Eu gosto dessa configuração porque posso trocar um pacote por outro.
fonte