如何在emacs中撤消fill-paragraph?

时间:2010-03-18 16:27:31

标签: emacs word-wrap

我有一个很长的文本文件。在一段时间之前编写和保存的文件上“撤消”M-q(fill-paragraph)的简单方法?

例如,我想改变这个:

  

他们要带我走了,   HA-HAAA!他们来接我   离开,ho-ho,嘻嘻,ha-haaa

     

到有趣的农场。生命在哪里   一直很漂亮,我会   很高兴看到那些漂亮的年轻人   他们干净的白色外套,他们是   来带我走吧哈哈!!!!!!

对此:

  

他们要带我走了,   HA-HAAA!他们来接我   离开,ho-ho,嘻嘻,ha-haaa

     

到有趣的农场。生命在哪里   一直很漂亮,我会   很高兴看到那些漂亮的年轻人   他们干净的白色外套,他们是   来带我走吧哈哈!!!!!!

4 个答案:

答案 0 :(得分:21)

使用我的.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 :(得分:9)

您可以将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))))

答案 2 :(得分:1)

当我在emacs 24.4.1中寻求M-Q(而不是M-q)的帮助时,我得到了这个:

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.

答案 3 :(得分:1)

C-x f 100000 M-q

这恰好填充了一个段落。

说明:

  1. C-x f Number:为该列设置大量(100 000)个字符。
  2. M-q:调用fill-paragraph命令。 (可替代多个段落:M-x fill-individual-paragraphs

此后,请不要忘记将列宽恢复为先前的值(此处为78)。

C-x f 78