2010-03-18 27 views
12

我有一個很長的文本文件。任何簡單的方法來「撤消」一個M-q(填充段落)在前一段被寫入和保存的文件上?如何撤消emacs中的填充段落?

例如,我想改變這一點:

他們來帶我走, HA-HAAA!
他們來帶我 走,何浩,嘻嘻,哈哈哈

到有趣的農場。哪裏的生活是 美麗的時刻,我會
是 高興地看到那些漂亮的年輕人在 他們乾淨的白色
外套,他們是 來帶我離開,哈哈!!!!!

要這樣:

他們來帶我走, HA-HAAA!他們來帶我 了,浩浩,嘻嘻,哈哈哈

去有趣的農場。生活是 美麗的時刻,我會 高興地看到那些漂亮的年輕人在 他們乾淨的白大衣,他們 來帶我離開,哈哈!!!!!

回答

8

您可以將fill-columnn設置爲非常大的數字,然後填充。

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

或者你可以使用一個小自定義函數:

(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

感謝這一點,但評論:你的函數沒有出現在段落的工作,從一個符號(如短劃線( - )或星號(*))開始,而由道格·哈里斯(Doug Harris)提供的功能則可以。自從你8年前發佈這些信息以來,情況可能會發生變化 – mark999 2018-01-13 06:37:02

19

使用從我的.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))) 

我不能邀功,我幾年前就用Google搜索。

1

當我要求幫助的MQ在Emacs 24.4.1(相對於MQ),我得到這個:

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

這可能是因爲你從[本頁](https://www.emacswiki.org/emacs/UnfillParagraph)添加了代碼到你的Emacs配置。 – fagerbua 2017-12-29 07:30:13

+0

沒有。我在modules/init-util.el中找到它 – mpersico 2017-12-30 22:48:35

+1

該文件未包含在vanilla GNU Emacs中。也許它來自你的發行版或你安裝的軟件包。 – fagerbua 2018-01-01 21:35:19

相關問題