From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id yNWOCkLr2F6MJgAA0tVLHw (envelope-from ) for ; Thu, 04 Jun 2020 12:38:26 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id ABdqBkLr2F7lHAAA1q6Kng (envelope-from ) for ; Thu, 04 Jun 2020 12:38:26 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id A30649404C5 for ; Thu, 4 Jun 2020 12:38:25 +0000 (UTC) Received: from localhost ([::1]:59114 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jgp8a-0006gw-LW for larch@yhetil.org; Thu, 04 Jun 2020 08:38:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52740) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jgp8C-0006gO-9F for emacs-orgmode@gnu.org; Thu, 04 Jun 2020 08:38:00 -0400 Received: from relay6-d.mail.gandi.net ([217.70.183.198]:50173) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jgp89-0001WP-Tq for emacs-orgmode@gnu.org; Thu, 04 Jun 2020 08:37:59 -0400 X-Originating-IP: 185.131.40.67 Received: from localhost (40-67.ipv4.commingeshautdebit.fr [185.131.40.67]) (Authenticated sender: admin@nicolasgoaziou.fr) by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id C61CBC0014; Thu, 4 Jun 2020 12:37:54 +0000 (UTC) From: Nicolas Goaziou To: Dominik Schrempf Subject: Re: Necessity of `org-fill-paragraph' References: <87a71jyr3m.fsf@gmail.com> Mail-Followup-To: Dominik Schrempf , "emacs-orgmode\@gnu.org" Date: Thu, 04 Jun 2020 14:37:53 +0200 In-Reply-To: <87a71jyr3m.fsf@gmail.com> (Dominik Schrempf's message of "Thu, 04 Jun 2020 14:04:29 +0200") Message-ID: <87wo4nropq.fsf@nicolasgoaziou.fr> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=217.70.183.198; envelope-from=mail@nicolasgoaziou.fr; helo=relay6-d.mail.gandi.net X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/04 08:37:55 X-ACL-Warn: Detected OS = Linux 3.11 and newer X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "emacs-orgmode@gnu.org" Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Spam-Score: -1.01 X-TUID: DxLQ9yh97gYm Hello, Dominik Schrempf writes: > I am using a global keybinding for =M-q=, so that I can fill and unfill > paragraphs with one key stroke (unfill.el): > > : (global-set-key (kbd "s-q") 'unfill-toggle) > > For a long time, I thought that =fill-paragraph= was broken in Org mode, because > it doesn't work well on code blocks, on lists, and on many other things [1]. > Just now, I realized that Org mode uses a specialized version of > `fill-paragraph`, called `org-fill-paragraph`. > > Hence, the aforementioned global key binding breaks behavior in Org mode, > although the function =unfill-toggle= is just a wrapper around > =fill-paragraph=. You could detect if you're in an Org document beforehand. `org-fill-paragraph' obeys to `fill-column'. > Is it necessary to have the specialized function =org-fill-paragraph=? Is it > possible to use the canonical =fill-paragraph=? There is `fill-paragraph-function', but it only kicks when no region is selected. Using it would break region filling. There is also `fill-forward-paragraph-function', but I think it is too limited. In a nutshell, I didn't find any way to fill correctly Org documents using `fill-paragraph' mechanism. So I wrote the current implementation of `org-fill-paragraph', which is a wrapper around `org-fill-element'. Regards, -- Nicolas Goaziou