From: Gerald Wildgruber <wildgruber@tu-berlin.de>
To: Noam Postavsky <npostavs@gmail.com>
Cc: Robert Pluim <rpluim@gmail.com>,
moasen@zoho.com,
Help Gnu Emacs mailing list <help-gnu-emacs@gnu.org>
Subject: Re: How to do a massive unfill paragraph operation over several hundred files?
Date: Mon, 8 Oct 2018 07:42:52 +0200 [thread overview]
Message-ID: <8736thouxv.fsf@tu-berlin.de> (raw)
In-Reply-To: <CAM-tV-__7PRkfr3EWL2jeL-yB1eqVcgknSk9bcKpj3SgkxB42w@mail.gmail.com>
On Do, Okt 04 2018, Noam Postavsky <npostavs@gmail.com> wrote:
>> Main problem seems to be: how to iterate through ALL paragraphs of the buffer programmatically, applying "fill-paragraph" each time anew.
>
> Perhaps this?
>
> (let ((fill-column most-positive-fixnum))
> (dolist (f (directory-files-recursively
> "dir/with/my/files/" (rx (or ".tex" ".org") eos)))
> (with-current-buffer (find-file-noselect f)
> (while (not (eobp))
> (fill-paragraph)
> (org-forward-paragraph))
> (save-buffer))))
Thanks Noam, this almost did it! but I couldn't see through a last problem, it sometimes worked, sometimes didn't. Here's the solution someone from the emacs Org mode mailing list pointed me to:
http://lists.gnu.org/archive/html/emacs-orgmode/2018-10/msg00070.html
I had to UNFOLD the entries before working on them, even programmatically, via "(org-show-all)".
I do this now from a lisp buffer and both functions work exactly as expected:
single file:
============
(let ((fill-column most-positive-fixnum))
(dolist (f (list "~/lorem.org"))
(with-current-buffer (find-file-noselect f)
(org-show-all)
(while (not (eobp))
(fill-paragraph)
(org-forward-paragraph))
(save-buffer))))
recursively through dir tree:
=============================
(let ((fill-column most-positive-fixnum))
(dolist (f (directory-files-recursively
"/dirs/with/org/files/" (rx (or ".org" ".outl") eos)))
(with-current-buffer (find-file-noselect f)
(org-show-all)
(while (not (eobp))
(fill-paragraph)
(org-forward-paragraph))
(save-buffer))))
That's great; I'm glad it works now from within emacs itself (and not via sed, awk or tr as I tried before), harnessing all the knowledge the editor has of its own constructs, especially with some of the more complicated list and enumeration structures, -- all of them are correctly unfilled. This is solved now.
Thanks again to everyone who contributed!
Gerald.
--
Sent with mu4e
next prev parent reply other threads:[~2018-10-08 5:42 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mailman.1463.1538170475.1284.help-gnu-emacs@gnu.org>
2018-09-29 11:32 ` How to do a massive unfill paragraph operation over several hundred files? Emanuel Berg
2018-09-29 12:04 ` history of argv (was: Re: How to do a massive unfill paragraph operation over several hundred files?) Emanuel Berg
2018-09-29 12:44 ` Skip Montanaro
2018-09-29 23:20 ` John Yates
[not found] ` <mailman.1503.1538263274.1284.help-gnu-emacs@gnu.org>
2018-09-30 18:20 ` Emanuel Berg
[not found] ` <mailman.1481.1538225108.1284.help-gnu-emacs@gnu.org>
2018-09-29 15:14 ` Emanuel Berg
2018-09-29 18:07 ` Barry Margolin
2018-09-29 21:20 ` James K. Lowden
2018-09-30 19:47 ` How to do a massive unfill paragraph operation over several hundred files? Gerald Wildgruber
[not found] ` <mailman.1577.1538336869.1284.help-gnu-emacs@gnu.org>
2018-09-30 20:28 ` Emanuel Berg
2018-10-01 5:48 ` Gerald Wildgruber
[not found] ` <mailman.1589.1538372941.1284.help-gnu-emacs@gnu.org>
2018-10-01 9:42 ` Emanuel Berg
2018-10-01 14:37 ` Gerald Wildgruber
2018-10-01 15:21 ` Robert Pluim
2018-10-02 12:11 ` Gerald Wildgruber
2018-10-02 15:37 ` Noam Postavsky
2018-10-03 10:11 ` Gerald Wildgruber
2018-10-03 23:52 ` Noam Postavsky
2018-10-08 5:42 ` Gerald Wildgruber [this message]
[not found] ` <mailman.1666.1538561477.1284.help-gnu-emacs@gnu.org>
2018-10-03 14:12 ` Emanuel Berg
[not found] ` <mailman.1650.1538482287.1284.help-gnu-emacs@gnu.org>
2018-10-02 15:11 ` Emanuel Berg
[not found] ` <mailman.1626.1538404685.1284.help-gnu-emacs@gnu.org>
2018-10-01 15:12 ` Emanuel Berg
2018-09-28 8:16 Gerald Wildgruber
2018-09-29 2:04 ` ken
[not found] ` <mailman.1466.1538186663.1284.help-gnu-emacs@gnu.org>
2018-09-29 11:34 ` Emanuel Berg
2018-09-30 5:10 ` Van L
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8736thouxv.fsf@tu-berlin.de \
--to=wildgruber@tu-berlin.de \
--cc=help-gnu-emacs@gnu.org \
--cc=moasen@zoho.com \
--cc=npostavs@gmail.com \
--cc=rpluim@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.