2009-11-06 8 views
5

sto lavorando con Ruby on Rails proietta la maggior parte del tempo quindi ho bisogno di un modo per salvare i progetti e lo stato dei buffer/finestre sto lavorando, soprattutto perché mi ritrovo spesso a commutazione per un altro progetto per alcuni minuti e poi tornare al progetto su cui stavo lavorando. Desktop.el sembra essere molto vicino ad eccezione del salvataggio della configurazione della finestra.Emacs sessione/progetti/finestra di gestione

Per coloro che hanno familiarità con TextMate, sto cercando qualcosa come i file di progetto textmate che è possibile aprire e aprono una diversa istanza dell'editor che apre solo i file in quel progetto.

Grazie, Cezar

risposta

3

Ho cercato di mettermi nei tuoi panni e evocare la mia soluzione preferita Emacs. Meglio che posso venire in mente è che io ogni tanto entrare in una modalità in cui non voglio che le mie finestre muck con trattando con Emacs interrompere, uno che richiede di Emacs diverse risorse (buffer/finestre). Per esempio, ho un ediff che sta succedendo e voglio andare al buffer scratch per testare un'idea senza masticare con la mia prospettiva di ediff, per prendere in prestito la nozione di Eclipse. In tal caso generalmente faccio C-x 5 2 per far apparire un nuovo frame. Se sul monitor sono già presenti più frame, eseguirò lo C-x 5 f per selezionare un frame con nome.

Nel tuo caso, si potrebbe avere una serie di fotogrammi con un prefisso "proj-x" e un altro con un prefisso "proj-y". In questo caso C-x f proj-x-foo fornisce un interruttore rapido per gestire le vostre interrupt C-x f proj-y-fee interruttori indietro. Nella maggior parte dei casi, penso che tu stia parlando di due frame, il che è ancora più semplice: C-x f o per passare tra i due frame.

Penso che il punto da portare a casa sia che con Emacs è possibile "rilasciare" ciò che si sta facendo senza la necessità di chiudere nulla, fare qualcos'altro e quindi tornare al proprio ambiente originale con poche storie o confusione. Questo è un corollario del concetto che con Emacs puoi avere centinaia di file aperti contemporaneamente, cioè non è necessario chiudere un file e aprirne un altro. Aprili tutti e prendi una palla. :-) E quando abbracci questo stile, C-x s è tuo amico.

+0

Non voglio un nuovo frame, voglio solo essere in grado di avere un set di file su cui sto lavorando in un frame e finestre multipezzo (di solito 2-3) uno dei quali dovrebbe essere diretto (che non chiude) – Cezar

1

Forse si sta cercando di ottenere emacs di lavorare come un IDE, che non lo è. Spesso ho aperto più progetti in emacs e non chiudo mai emacs, non per settimane. Questo è uno dei motivi principali per cui sono finito su Emacs anni fa. Nel mio progetto attuale cambio tra java, ruby ​​e Lisp. Ho anche bisogno di funzionalità per modificare jsp, erb, html e css, l'unica cosa che non ho ancora risolto è javascript. Oltre alla capacità di personalizzare completamente il mio ambiente, questo è il potere di emacs.

Io uso sempre la BCE e, tipicamente mentre mi muovo tra i file, mi segue, non lavoro da una prospettiva "Windows", ma da una prospettiva "Im here". Un buffer particolare che è aperto o meno non è in realtà importante. Uso anche IDO, quindi cambiare i buffer è davvero semplice e intuitivo. Generalmente ho due buffer visualizzati max (ma potenzialmente molti aperti). M-X s è anche utile per assicurarti di averlo salvato poiché enumererà tutti i buffer non salvati e ti chiederà di farlo.

Quando devo chiudere emacs, generalmente torno a dove mi trovavo molto rapidamente effettuando il cd'in in quella cartella e digitando emacs app/controller/my_controller.rb. Da lì la navigazione dei binari è molto utile. M-Shift-down arrow e siamo fuori ...

+0

quando si lavora con ruby ​​on rails, di solito si hanno molti file inde.html separati solo dal percorso della directory che è un trascinamento per trovare i file giusti in particolare quando si hanno più di 1000 file nel progetto, per non parlare dell'apertura di più di un progetto – Cezar

+2

Si desidera abilitare "uniquify". Se hai foo/index.html e bar/index.html aperti, chiamerà i buffer 'foo/index.html' e' bar/index.html' invece di 'index.html' e' index.html <1> ' – jrockway

+0

@jrockway - È un ottimo consiglio! – wentbackward

3

Mi piace la configurazione della finestra per la registrazione() per situazioni simili a ciò che stai descrivendo.Una volta salvata la configurazione di una finestra in un registro, è solo C-x r j <register_name> tornare alla configurazione salvata.

0

eproject ha eproject-open-all-project-files, che assicura tutti i file del progetto corrente vengono aperti (o invocano con l'arg prefisso per scegliere un progetto arbitrario) e eproject-kill-project-buffers che chiude tutti i file nel progetto corrente. Ciò ti consente di iniziare facilmente con un progetto e ti consente di ripulire quando hai finito.

+0

heya jrockway, la tua soluzione funziona solo per un numero relativamente piccolo di file (non migliaia come nel mio caso) – Cezar

+0

Aprire migliaia di file con eproject non è più lento che aprirli manualmente. Certo, perché i tuoi progetti contengono migliaia di file? – jrockway