Una finestra per progetto


9

Sto lavorando a diversi progetti in questo momento. Voglio una singola istanza di Emacs per gestirli tutti. Quello che voglio è un comportamento simile a quello di tmux in cui ogni 'finestra' (nel senso di Emacs) corrisponde a un progetto che contiene buffer dei file relativi a quel progetto. Ci sono diverse finestre, ognuna corrispondente a un progetto e dovrei essere in grado di passare da una all'altra (qualcosa di simile a C-b w)

Questa funzionalità è già presente in qualche forma? Immagino che sarà bello avere come le altre opzioni sono:

  • Apri diverse istanze di Emacs.
  • Avere tutti i file di tutti i progetti in un'unica istanza, il che rende problematico il passaggio da un buffer all'altro.

2
Per la gestione dei progetti, hai provato la prospettiva ?
cutejumper

Prova questo post sul blog su Emacs come multiplexer terminale avanzato : otterrai un comportamento simile a Tmux. Mi sono appena imbattuto, l'ho messo al lavoro e fa quello che pubblicizza. In cima otterrai ace-jump-mode, di per sé una soluzione interessante per saltare rapidamente con il cursore in un buffer (se non lo hai già).

Se sei disposto a investire un po 'di tempo iniziale per definire le condizioni per i progetti, puoi assegnarli a un frame ciascuno e utilizzarli frame-bufs. Vedi anche Come intercettare un file prima che si apra e decidere quale frame - stackoverflow.com/questions/18346785/… - per visualizzare un buffer in un frame di destinazione e puoi usarlo frame-buffs--add-bufferinsieme per associare il frame. Si può sposare frame-bufscon tabbare tamponi socio / rimuovere in modo dinamico: emacs.stackexchange.com/a/10112/2287
lawlist

Ecco il link per frame-bufsassociare i buffer a un determinato frame: github.com/alpaker/Frame-Bufs/blob/master/frame-bufs.el
elenco delle leggi

@cutejumper La prospettiva è perfetta. Potresti scriverlo come una risposta in modo che io possa spuntarlo correttamente.
sudeepdino008,

Risposte:


7

È possibile utilizzare la prospettiva per gestire i progetti. Dal suo README:

prospettiva.el fornisce più aree di lavoro (o "prospettive") per ciascun frame Emacs. Ciò semplifica il lavoro su molti progetti separati senza perdersi in tutti i buffer.

Ogni prospettiva è composta da una configurazione della finestra e un set di buffer. Il passaggio a una prospettiva attiva la sua configurazione della finestra e quando in una prospettiva sono disponibili solo i suoi buffer per impostazione predefinita.

C'è anche un'altra versione persp-mode , che è un po 'diversa da quella originale. Le prospettive sono condivise tra i frame e gli stati possono essere salvati sul disco.

Se stai usando il proiettile , c'è anche un'integrazione prospettica .


5

Puoi provare la modalità eyebrowse , che gestisce layout di finestre multiple (forse complicate). È possibile passare da una configurazione di finestra all'altra con sequenze di tasti come C-c C-w 1e C-c C-w 2.


1
Eyebrowse condivide il buffer tra le aree di lavoro. Ciò potrebbe essere indesiderabile
sudeepdino008

2

Una soluzione "barebone" potrebbe essere utilizzata C-x r wper registrare lo stato corrente della finestra e C-x r jtornare a uno precedente.


2

Uso una combinazione di un paio di pacchetti diversi.

Soprattutto, uso Projectile per lavorare su un "progetto" e su file di ricerca fuzzy. Uso più frame, uno per ogni progetto a cui sto attualmente lavorando. Devi solo conoscere C-x 5 2e C-x 5 0creare / uccidere un frame. Per gestire il passaggio da un progetto all'altro e per memorizzare lo stato della configurazione / suddivisioni della finestra, utilizzo Workgroups per windows (per emacs) .

Mi piace questa configurazione perché posso potenzialmente scambiare un pacchetto con un altro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.