How to undo fill-paragraph in emacs?

南笙酒味 提交于 2019-12-04 17:15:03

问题


I have a text file that is pretty long. Any easy way to "undo" a M-q (fill-paragraph) on a file that was written and saved a while ago?

For example, I want to change this:

They're coming to take me away, ha-haaa!!
They're coming to take me away, ho-ho, hee-hee, ha-haaa

To the funny farm. Where life is beautiful all the time and I'll
be happy to see those nice young men in their clean white
coats and they're coming to take me away, ha-haaa!!!!!

To this:

They're coming to take me away, ha-haaa!! They're coming to take me away, ho-ho, hee-hee, ha-haaa

To the funny farm. Where life is beautiful all the time and I'll be happy to see those nice young men in their clean white coats and they're coming to take me away, ha-haaa!!!!!


回答1:


You can set fill-columnn to a really large number, and fill.

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

Or you can use a little custom function:

(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:


Use the following from my .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)))

I can't take credit, I googled this years ago.




回答3:


When I asked for help on M-Q (as opposed to M-q) in emacs 24.4.1, I got this:

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.


来源:https://stackoverflow.com/questions/2471557/how-to-undo-fill-paragraph-in-emacs

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!