Uma janela por projeto

9

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.
sudeepdino008
fonte
2
Para gerenciamento de projetos, você já tentou a perspectiva ?
precisa saber é o seguinte
Experimente este post no Emacs como um multiplexador de terminal avançado : você terá um comportamento semelhante ao Tmux. Eu apenas tropecei, coloquei-o para funcionar e ele faz o que anuncia. No topo, você terá ace-jump-modeuma solução interessante para saltar rapidamente com o cursor em um buffer (se você ainda não o tiver).
Se você estiver disposto a investir algum tempo de configuração inicial para definir condições para projetos, poderá alocá-las a um quadro cada e usá-las 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 usar frame-buffs--add-bufferem conjunto para associar o quadro. Você pode se casar frame-bufscom tabbare buffers associado / remover dinamicamente: emacs.stackexchange.com/a/10112/2287
lawlist
Aqui está o link para frame-bufsa buffers associado com um quadro específico: github.com/alpaker/Frame-Bufs/blob/master/frame-bufs.el
lawlist
@cutejumper A perspectiva é perfeita. Você pode escrevê-lo como uma resposta para que eu possa marcar corretamente.
Sudeepdino008

Respostas:

7

Você pode usar a perspectiva para gerenciar projetos. Do seu README:

perspective.el fornece vários espaços de trabalho (ou "perspectivas") para cada quadro do Emacs. Isso facilita o trabalho em muitos projetos separados, sem se perder em todos os buffers.

Cada perspectiva é composta por uma configuração de janela e um conjunto de buffers. Mudar para uma perspectiva ativa sua configuração de janela e, quando em perspectiva, apenas seus buffers estão disponíveis por padrão.

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 .

cutejumper
fonte
5

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 1e C-c C-w 2.

Eric Brown
fonte
11
O Eyebrowse compartilha buffer entre os espaços de trabalho. Isso pode ser indesejável
sudeepdino008
2

Uma solução "barebones" pode ser usada C-x r wpara registrar o estado atual da janela e C-x r jvoltar ao estado anterior.

Stefan
fonte
2

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 2e C-x 5 0criar / 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.

Mike Nichols
fonte