2009-07-30 13 views
12

Eventuali duplicati:
How to achieve code folding effects in emacsCodice pieghevole in Emacs

una caratteristica eccellente di Dreamweaver è code folding of any lines of text - ricorsivamente!

È fantastico, posso piegare qualsiasi testo o codice, indipendentemente dalla lingua. Lavoro con i sistemi esistenti; Non modifico codice o codice ben scritto in una lingua, ecc. Per lo più HTML misto a dio-sa-cosa. Le linee pieghevoli semplificano e velocizzano la comprensione di . Purtroppo, questa è la funzione solo che mi piace in Dreamweaver.

C'è qualche codice di piegatura per Emacs in un obiettivo simile?

+1

precedenza qui: http: // stackoverflow.com/questions/1085170/how-to-achieve-code-folding-effects-in-emacs – dmckee

risposta

9

C'è folding mode, una modalità secondaria. Sfortunatamente è intrusivo: devi annotare manualmente le pieghe con commenti specializzati, che ingombrano il codice quando non usi la modalità (o quando condividi il codice con altri che non lo usano). Una modalità migliore non cambierebbe il tuo codice per funzionare.

Lasciatemi aggiungere: c'è un duplicato di questo che vale la pena dare un'occhiata: How to achieve code folding effects in Emacs.

+1

Grazie, avevo già guardato quella domanda e non risponde alla mia domanda perché non voglio avere per modificare il mio codice per farlo. Ma accetterò comunque una risposta, ad esempio "no". Sembra che dovrò scrivere da solo o migrare a Vim. –

+1

Se qualcuno viene a cercare questa pagina in un secondo momento, questa libreria di piegatura basata sui tag potrebbe essere interessante: http://lisperati.com/tagging.html –

+1

Se * si * finisce per scrivere, fatecelo sapere! Ho voluto una corretta modalità di piegatura per Emacs per un bel po '. Mi ero praticamente arreso e ho iniziato a usare altri editor. – quark

8

nascondi-spettacolo (hs-minor-mode) è un modo minore che farà qualcosa di simile ...

L'impostazione predefinita chiave vincolante per innescare il pieghevole è C-c @ C-c che trovo abbastanza ingombrante. Ma poi non lo uso molto, neanche io.

+1

Per ulteriori dettagli, consultare: http://www.emacswiki.org/emacs/HideShow – Pete

+1

L'ho già visto. Ho davvero bisogno di qualcosa per nascondere una determinata regione piuttosto che cercare di capire la sintassi, come ho detto sopra. Grazie comunque. –

1

Qualcos'altro da guardare è nxhtml-mode; non è il codice fold, ma evidenzia il codice misto (ad esempio HTML e PHP) in modo diverso a seconda del tipo. Questo ti dà un simile guadagno di comprensibilità senza l'imbarazzo della modalità pieghevole. Penso che questo approccio sia più adatto ad Emacs, in primo luogo perché il code-folding sembra un'idea orientata al mouse che non si adatta bene all'interfaccia Emacs basata sulla tastiera, e in secondo luogo perché Emacs facilita la navigazione in un file di grandi dimensioni quel codice può rimanere visibile senza intralciarti.

4

È possibile cercare la funzione set-selective-display e la variabile selective-display. Non esattamente quello che vuoi, ma ti consente di nascondere le linee in base al livello di indentazione.

+1

Cheers, sono riuscito a [cucinare qualcosa] [1] usando 'set-selective-display' per dimostrare almeno questa idea pieghevole per discussioni future. Non è una soluzione perché mette a disagio il codice, ma è una buona dimostrazione. Proverò ad usare tagging.el come esempio da cui ottenere idee per implementarlo correttamente. [1]: http://chrisdone.com/blog/html/2009-08-01-emacs-folding.html#video –

3

Io uso fold-dwim.el. Dalla wiki di emacs:

fold-dwim.el è un'interfaccia utente unificata per le modalità di piegatura/definizione di Emacs. Supporta folding.el, hideshow.el, outline.el, TeX-fold.el e nxml-outln.el

È possibile ottenere qui:

http://www.emacswiki.org/emacs/FoldDwim

ho questo nel mio .emacs:

(require 'fold-dwim) 
(global-set-key [(C kp-4)] 'fold-dwim-hide-all) 
(global-set-key [(C kp-5)] 'fold-dwim-toggle) 
(global-set-key [(C kp-6)] 'fold-dwim-show-all) 

tenere a mente che è ancora necessario attivare hs-minore-mode, piegatura-mode, ecc, ma trovo più facile da usare loro in questo modo.

0

Se è effettivamente necessario "qualcosa per nascondere una determinata regione piuttosto che cercare di capire la sintassi" (diversamente da hideshow e altre soluzioni basate sull'analisi) e "non si desidera modificare il proprio codice" (diversamente dalla piegatura), quindi, presumo, vuoi dire che non vuoi che le regioni siano persistenti tra diverse sessioni di editing. Allora si potrebbe utilizzare http://www.emacswiki.org/emacs/HideRegion per nascondere le regioni selezionate dall'utente ...

(Ma questo è strano modo minore pieghevole con segni persistenti sembra essere una soluzione molto più conveniente..)

+0

HideRegion è troppo complicato. Ho bisogno di qualcosa che funzioni! –

+0

@Robin Ma cosa vuoi che faccia? La mia risposta riguardava solo nascondere una regione arbitraria una volta. –

Problemi correlati