2012-07-10 10 views
22

Sono nuovo di Clojure e nuovo di Emacs.Come ri-indentare intelligentemente Clojure in Emacs?

Esiste uno scorciatoia Emacs di ri-trattino in modo intelligente l'intero file? in caso contrario, c'è almeno un modo per indentare le regioni selezionate a sinistra oa destra?

mi sento come se fossi tornato nell'età della pietra più volte premendo le frecce

risposta

31

C - xh seleziona l'intero buffer. C - M - \ riprende la regione selezionata.

+5

E 'C-M-q' corre' trattino-sexp', che trovo anche molto utile, specialmente in combinazione con 'inizio-di-defun' (che vive' C-M-a'). – Hugh

+16

Con la modalità paredit, è sufficiente premere 'M-q', che reindisce l'intero defun senza spostare il punto intorno. – amalloy

+2

nitpick., Sua 'C-x h' per selezionare intero buffer – kindahero

10

Ctrl - x, h (seleziona tutto) seguita da Tab (a trattino)

4

comando sidro format-buffer (Da sidro 0.9.0)

1

Quando di acquisire i dati da una sequenza come C-u C-c C-e (cider-eval-last-sexp), l'uscita di dati grezzi per il buffer può essere ingombrante per ispezionare/lavoro con. E i normali comandi di indentazione del codice (menzionati nelle risposte qui) non lo gestiscono bene.

Per gestire i risultati da tali espressioni valutate, provare cider-format-edn-region.

Come esempio concreto, hai mai provato a riformattare il tuo ~/.lein/profiles.clj? Questo è piuttosto difficile da fare e mantenere consistente, fino a scoprire cider-format-edn-region. Prendi l'avvertenza che, tuttavia, rimuoverà qualsiasi commento.

+0

Non ho mai trovato riformattare il mio 'profiles.clj' essere duro, come conseguenza dell'utilizzo di' 'paredit' e aggressivo-indent'. Questo approccio ha il vantaggio di non rimuovere commenti, che ho un sacco di. –