2012-11-26 8 views
26

Se ci sono linee in un file che sono troppo lunghe per essere visualizzate sullo schermo, possiamo usare il ritorno a capo automatico. Ora le lunghe file sono divise in blocchi visibili sullo schermo.Emacs: come mantenere il livello di indentazione di una linea molto lunga spostata

In genere il codice è strutturato e il rientro è utilizzato per la leggibilità. Se una linea è racchiusa in due (o più) linee, solo la prima riga ha il rientro destro e le altre righe iniziano all'inizio di una riga. C'è un modo per mantenere tutte le linee avvolte con lo stesso livello di rientro (o più in generale il diverso livello di rientro)?

Ho cercato per molto tempo, ma non sono riuscito a trovare una soluzione. Questa domanda è simile a un post per Vim, ma non ho trovato un post o una risposta per emacs.

risposta

27

Il pacchetto adaptive-wrap, che può essere installato tramite il sistema di imballaggio ELPA, dovrebbe fare ciò che si desidera.

Dopo aver installato il pacchetto, basta eseguire i seguenti comandi:

  • Mxvisual-line-modeRET (per avvolgere linee lunghe)
  • Mxadaptive-wrap-prefix-modeRET (per creare linee avvolti rientri piacevolmente)

Ho anche il seguente frammento nel mio file init.el per attivare automaticamente adaptive-wrap-prefix-mode insieme visual-line-mode:

(when (fboundp 'adaptive-wrap-prefix-mode) 
    (defun my-activate-adaptive-wrap-prefix-mode() 
    "Toggle `visual-line-mode' and `adaptive-wrap-prefix-mode' simultaneously." 
    (adaptive-wrap-prefix-mode (if visual-line-mode 1 -1))) 
    (add-hook 'visual-line-mode-hook 'my-activate-adaptive-wrap-prefix-mode)) 
+0

Non c'è bisogno di un consiglio: è possibile usare 'visivo-line-mode-hook' invece. – Stefan

+0

@Stefan Sì hai ragione. Mi sono confuso poiché 'visual-line-mode-hook' non è documentato come variabile e in qualche modo ho pensato che la modalità non avesse impostato alcun hook. Ho modificato la risposta per riflettere questo. – Francesco

+0

Grazie! Funziona alla grande! – Chris

Problemi correlati