Подтвердить что ты не робот

Обратный M-q, функция незаполненного параграфа

Есть ли обратный для M-q, какой-то unfill-paragraph-function?

Если у меня есть данные отмены, то это, конечно, легко. То, что я прошу, - это вместо этого возможность объединить строки в абзаце в одну длинную строку сразу после того, как я только что прочитал файл с диска. Это позволило бы затем вставить текст в форму (веб-форму и т.п.), Которая ожидает один разрыв строки для каждого абзаца.

В прошлом я отключил auto-fill, создал макрос, чтобы удалить EOL, и перейти к следующей строке и применить его несколько раз, но это становится утомительным.

4b9b3361

Ответ 1

Вот ответ. Короче говоря:

(defun unfill-paragraph ()
  "Replace newline chars in current paragraph by single spaces.
This command does the reverse of `fill-paragraph'."
  (interactive)
  (let ((fill-column 90002000))
    (fill-paragraph nil)))

(defun unfill-region (start end)
  "Replace newline chars in region by single spaces.
This command does the reverse of `fill-region'."
  (interactive "r")
  (let ((fill-column 90002000))
    (fill-region start end))) 

Обновление: я упаковал это здесь, и его можно установить из Marmalade или Melpa.

Ответ 2

См. также M- ^ (удаление-отступ).

Он соединяет текущую строку с предыдущей строкой, поэтому, если вы начинаете с пункта в последней строке абзаца, вы можете продолжать нажимать M- ^ до тех пор, пока все линии не будут объединены.

Ответ 4

Я сначала использовал решение @sanityinc некоторое время, пока не наступил Stefan Monnier Unfill Paragraph в EmacsWiki. Кажется более надежным

;;; Stefan Monnier <foo at acm.org>. It is the opposite of fill-paragraph    
(defun unfill-paragraph (&optional region)
  "Takes a multi-line paragraph and makes it into a single line of text."
  (interactive (progn (barf-if-buffer-read-only) '(t)))
  (let ((fill-column (point-max))
        ;; This would override `fill-column' if it an integer.
        (emacs-lisp-docstring-fill-column t))
    (fill-paragraph nil region)))

;; Handy key definition
(define-key global-map "\M-Q" 'unfill-paragraph)

(defun unfill-region (beg end)
  "Unfill the region, joining text paragraphs into a single
logical line.  This is useful, e.g., for use with
`visual-line-mode'."
  (interactive "*r")
  (let ((fill-column (point-max)))
    (fill-region beg end)))

;; Handy key definition
(define-key global-map "\C-\M-Q" 'unfill-region)

Связывание с M-Q делает команду намного проще.