Perché non c'è un codice di piegatura in emacs?
Domanda
Ci sono diverse domande sul SO su come ottenere raggruppamento del codice in emacs, senza dover aggiungere alcun carattere speciale come "marcatori" nei commenti, per esempio. Qualcuno ha detto che non vi era "nessuna soluzione perfetta."
Sembra che potrebbe essere fatto analizzando la sorgente del programma che si sta scritto e look per la parentesi di corrispondenza o staffa, o di farlo sulla base di rientro. Si potrebbe anche utilizzare una combinazione di script che utilizzano metodi diversi.
Allora perché è comunemente accettato che non v'è "perfetto" e modo semplice per ottenere il codice di piegatura in eMac? C'è qualcosa in emacs o la sua architettura che lo rende difficile da programma? Se fosse facile, dopo tanti anni di persone intelligenti che utilizzano emacs Si potrebbe pensare che qualcuno avrebbe scritto.
Soluzione
Si dovrebbe giocare con NascondiMostra ( hs-minor-mode
) in combinazione con fold-dwim.el
. Fa esattamente quello che ha suggerito - cerca i corrispondenti ganci / parentesi, e può essere impostato fino a ripiegare sul rientro.
C'è una soluzione pieghevole robusta là fuori per la maggior parte dei linguaggi comuni, e se non c'è, tutti i pacchetti pieghevoli sono altamente personalizzabili. Infatti, l'unico inconveniente è la proliferazione di metodi di piegatura (fold-dwim
aiuta parecchio in questo); Ho usato a pensare che perché nessuno mi potrebbe puntare a una soluzione definitiva, pieghevole era difficile o impossibile - in realtà, è vero il contrario. Non vi resta che sperimentare un po 'per vedere cosa funziona meglio per voi.
Ho usato folding.el
(per esempio a roba gruppo nel mio .emacs
), outline-minor-mode
, e ora NascondiMostra. C'è qualche possibilità che nessuno di loro avrebbe funzionato esattamente come si desidera a destra, fuori dalla scatola (ad esempio, potrebbe essere necessario impostare un regex contorno, o definire marchi pieghevoli per folding.el
), ma risulta essere facile. Le scorciatoie da tastiera di default possono essere un po 'barocco, ma questo è sanata dal fold-dwim
e / o hideshow-org
(altamente raccomandato per NascondiMostra, cf pagina Emacswiki NascondiMostra, si può anche il comportamento di hideshow-org
mimica per gli altri modi di piegatura con alcuni elisp quick-and-dirty e fold-dwim
). Una volta a capire la configurazione preferita, basta accenderla automaticamente tramite ganci o buffer-locali variabili, e guardare il vostro codice di piegare via :) (vedi sotto, notare la cliccabile +
del a margine).
alt http://img198.imageshack.us/img198/4029/screenshot1oc testo. png
Altri suggerimenti
si dovrebbe guardare in CEDET. Lo fa in codice pieghevole bene, e molti altri di fantasia che hai probabilmente stai cercando se stai passando da un IDE per Emacs.
In particolare, look per `global-semantico-tag-pieghevole-mode '
Non è necessario più nulla, solo abilitare outline-minor-mode per i tipi di file che si desidera piegare.
Ma in realtà, ci sono diverse soluzioni per Emacs; Ho elencato alcuni di loro (quelli che ho è capitato di imbattersi) all'indirizzo http://en.wikipedia.org/w/index.php?title=Code_folding&oldid=375300945#cite_note-2 .
Anche se, ci sono cose che mi manca: in alcuni casi, mi piacerebbe combinare diversi meccanismi: per esempio, per Markdown, mi piacerebbe usare contorno a base di piegatura (per le sezioni) e sulla base-indentazione pieghevole (per citazioni, blocchi di codice ecc.) - per non perdere tempo con l'attuazione di un parser completo per markdown
Qui sono:
basata su token pieghevole in Emacs
pieghevolebasata su token in Emacs è impemented dalla piegatura modo minore .
Rientro a base pieghevole in Emacs
Si può usare la funzione set-selective-display
in Emacs per linee nascondere in base al livello di rientro, come suggerito nel codice universale pieghevole nota .
pieghevole Sintassi-dipendente Emacs
pieghevole Sintassi-dipendente Emacs è sostenuta da:
-
contorni e allout modalità per speciale "contorno" dedicato -syntaxes;
-
NascondiMostra modalità minori per alcuni linguaggi di programmazione;
-
Inoltre,
- semantico-tag-pieghevole modo minore e la
comando
senator-fold-tag
sintassi supportata da semantica , - nonché da doc-modalità per JavaDoc o commenti Doxygen,
- by TeX-fold-mode
-
sgml-fold-element
comando, - nxml-outln biblioteca in corrispondenti modalità linguaggio-specifici ed eventualmente in altri modi per particolari sintassi.
- semantico-tag-pieghevole modo minore e la
comando
Diversi meccanismi di piegatura sono unificati dal piegare-DWIM interfaccia.
Vedi anche http://www.emacswiki.org/emacs/CategoryHideStuff .
piegatura delle regioni selezionate dall'utente in Emacs
pieghevole di regioni selezionate dall'utente in Emacs è attuato dalla nascondere-regione-nascondere comando .
Sono stato con pieghevole-mode per parecchio tempo. Con il modello di auto-inserimento e abrevs funziona abbastanza bene per me per per alcuni bei mattoni di codice.
Essere in grado di produrre il buffer piegato (per la stampa / email) è sempre stato un mio desiderio. Alcuni dei miei tag pieghevoli sono per nascondere / password sicura.
Si Infine raggruppamento del codice c'è in emacs. Prova yafolding presente alla libreria melpa.org pacchetto.