2010-03-18 12 views
12

Ho un file di testo che è piuttosto lungo. Un modo semplice per "annullare" un M-q (fill-paragrafo) su un file che è stato scritto e salvato qualche tempo fa?Come annullare il paragrafo di riempimento in emacs?

Per esempio, voglio cambiare questo:

Stanno venendo per portarmi via, ha-haaa !!
Stanno venendo a prendermi via , ho-ho, hee-hee, ha-haaa

Alla fattoria divertente. Dove la vita è bella tutto il tempo e io
essere felice di vedere quei bei giovanotti in loro puliti bianchi
cappotti e sono venuta a portarmi via, ah-haaa !!!!!

A tal:

Stanno venendo per portarmi via, ha-haaa !! Stanno venendo a prendermi via , ho-ho, hee-hee, ha-haaa

Alla fattoria divertente. Dove la vita è bella tutto il tempo e sarò felice di vedere quei bei giovani uomini in loro camici bianchi puliti e sono venire a portarmi via, ha-haaa !!!!!

risposta

8

È possibile impostare fill-columnn su un numero molto elevato e compilare.

C-u 10000 C-x f M-x fill-individual-paragraphs 

Oppure si può usare un po 'di funzione personalizzata:

(defun refill-paragraphs-to-be-one-line() 
    "fill individual paragraphs with large fill column" 
    (interactive) 
    (let ((fill-column 100000)) 
    (fill-individual-paragraphs (point-min) (point-max)))) 
+0

Grazie per questo, ma un commento: la funzione sembra non lavorare sui paragrafi che inizia con un simbolo come un trattino (-) o un asterisco (*), mentre le funzioni fornite da Doug Harris lo fanno. Forse qualcosa è cambiato da quando hai postato questo 8 anni fa. – mark999

19

Utilizza il seguente dai miei .emacs:

(defun unfill-paragraph() 
    (interactive) 
    (let ((fill-column (point-max))) 
    (fill-paragraph nil))) 

(defun unfill-region() 
    (interactive) 
    (let ((fill-column (point-max))) 
    (fill-region (region-beginning) (region-end) nil))) 

non posso prendere credito, Ho cercato su google questo anni fa .

1

Quando ho chiesto aiuto su MQ (al contrario di Mq) in emacs 24.4.1, ho ottenuto questo:

M-Q (translated from <escape> Q) runs the command unfill-paragraph, which is an 
interactive Lisp function in `init-util.el'. 

It is bound to M-Q. 

(unfill-paragraph &optional REGION) 

Takes a multi-line paragraph and makes it into a single line of text. 
+0

Probabilmente è perché hai aggiunto il codice da [questa pagina] (https://www.emacswiki.org/emacs/UnfillParagraph) alla tua configurazione di Emacs. – fagerbua

+0

No. L'ho trovato in modules/init-util.el – mpersico

+1

Questo file non è incluso in vanilla GNU Emacs. Forse proviene dalla tua distribuzione o da un pacchetto che hai installato. – fagerbua

Problemi correlati