Emacs: Reformat to Long Lines (unfill-paragraph) 🚀
unfill-paragraph, unfill-region
Emacs does not have a “unfill-paragraph” command to do the inverse of “fill”. Here's the solution:
(defun xah-unfill-paragraph () "Replace newline chars in current paragraph by single spaces. This command does the inverse of `fill-paragraph'. URL `http://xahlee.info/emacs/emacs/emacs_unfill-paragraph.html' Version 2016-07-13" (interactive) (let ((fill-column most-positive-fixnum)) (fill-paragraph)))
(defun xah-unfill-region (start end) "Replace newline chars in region by single spaces. This command does the inverse of `fill-region'. URL `http://xahlee.info/emacs/emacs/emacs_unfill-paragraph.html' Version 2016-07-13" (interactive "r") (let ((fill-column most-positive-fixnum)) (fill-region start end)))
toggle “fill” or “unfill”
This command automatically toggle “fill” or “unfill” on the current paragraph. If there is a text selection, then the command automatically works on the region.
(defun xah-fill-or-unfill () "Reformat current paragraph or region to `fill-column', like `fill-paragraph' or “unfill”. When there is a text selection, act on the selection, else, act on a text block separated by blank lines. URL `http://xahlee.info/emacs/emacs/modernization_fill-paragraph.html' Version 2017-01-08" (interactive) ;; This command symbol has a property “'compact-p”, the possible values are t and nil. This property is used to easily determine whether to compact or uncompact, when this command is called again (let ( ($compact-p (if (eq last-command this-command) (get this-command 'compact-p) (> (- (line-end-position) (line-beginning-position)) fill-column))) (deactivate-mark nil) ($blanks-regex "\n[ \t]*\n") $p1 $p2 ) (if (use-region-p) (progn (setq $p1 (region-beginning)) (setq $p2 (region-end))) (save-excursion (if (re-search-backward $blanks-regex nil "NOERROR") (progn (re-search-forward $blanks-regex) (setq $p1 (point))) (setq $p1 (point))) (if (re-search-forward $blanks-regex nil "NOERROR") (progn (re-search-backward $blanks-regex) (setq $p2 (point))) (setq $p2 (point))))) (if $compact-p (fill-region $p1 $p2) (let ((fill-column most-positive-fixnum )) (fill-region $p1 $p2))) (put this-command 'compact-p (not $compact-p))))
Note: an early implementation is named “compact-uncompact-block”.
Emacs Lines, Column, Cursor Position
Soft-Wrap Lines
Reformat Lines (Hard-Wrap)
- Emacs: Hard-Wrap Lines (fill-paragraph)
- Emacs: Reformat to Long Lines (unfill-paragraph) 🚀
- Emacs: Reformat Lines for Source Code 🚀