Let op, het probleem met de originele versie van alinea-opvulling
is dat het opvulgebied
aanroept als de regio actief is. Hiermee worden alle items samengevoegd tot één gevuld item in plaats van meerdere gevulde items.
Er volgt een opdracht opvulgebied-alinea's
die elke alinea vult met de niet-interactieve versie van vul-alinea
.
De items in de regio worden dus afzonderlijk gevuld.
In de code is de opdracht gebonden aan de sleutelreeks C-c f . U kunt dit naar wens aanpassen.
(defun fill-region-paragraphs (b e &optional justify)
"Fill region between b and e like `fill-paragraph' for each paragraph in region
instead of `fill-region' which is implied by the original version of `fill-paragraph'.
Justify when called with prefix arg."
(interactive "r\nP")
(save-excursion
(goto-char b)
(while (< (point) e)
(fill-paragraph justify)
(forward-paragraph)
)))
(global-set-key (kbd "C-c f") 'fill-region-paragraphs)
Hieronder is er een uitgebreide versie van de code van het antwoord op een andere vraag .
Ik heb paragraph-fill
eraan toegevoegd.
Selecteer eerst de items die u wilt vullen. Druk vervolgens op het prefix arg C-u en C - + om de gewenste opmaak te krijgen.
(defun org-adjust-region (b e)
"Re-adjust stuff in region according to the preceeding stuff."
(interactive "r") ;; current region
(save-excursion
(let ((e (set-marker (make-marker) e))
(_indent (lambda ()
(insert ?\n)
(backward-char)
(org-indent-line)
(delete-char 1)))
last-item-pos)
(goto-char b)
(beginning-of-line)
(while (< (point) e)
(indent-line-to 0)
(cond
((looking-at "[[:space:]]*$")) ;; ignore empty lines
((org-at-heading-p)) ;; just leave the zero-indent
((org-at-item-p)
(funcall _indent)
(let ((struct (org-list-struct))
(mark-active nil))
(ignore-errors (org-list-indent-item-generic -1 t struct)))
(setq last-item-pos (point))
(when current-prefix-arg
(fill-paragraph)))
((org-at-block-p)
(funcall _indent)
(goto-char (plist-get (cadr (org-element-special-block-parser e nil)) :contents-end))
(org-indent-line))
(t (funcall _indent)))
(forward-line))
(when last-item-pos
(goto-char last-item-pos)
(org-list-repair)
))))
(define-key org-mode-map (kbd "C-+") 'org-adjust-region)
In emacs -Q
25.1.50.2 heb ik het volgende orgbestand test.org
gebruikt om te testen:
* first header
- Funded pensions :: As explained more fully in Chapter 3, funded pensions are paid on behalf of its members.
- Funded pensions :: As explained more fully in Chapter 3, funded pensions are paid on behalf of its members.
- Funded pensions :: As explained more fully in Chapter 3, funded pensions are paid on behalf of its members.
Het selecteren van alle items als regio en het aanroepen van fill-region-as-paragraph
heeft geresulteerd in:
* first header
- Funded pensions :: As explained more fully in Chapter 3, funded
pensions are paid on behalf of its members. - Funded pensions :: As
explained more fully in Chapter 3, funded pensions are paid on behalf
of its members. - Funded pensions :: As explained more fully in
Chapter 3, funded pensions are paid on behalf of its members.
wat duidelijk niet is wat je wilt.
Het toepassen van fill-region-paragraph
resulteert in de volgende tekst:
* first header
- Funded pensions :: As explained more fully in Chapter 3, funded
pensions are paid on behalf of its members.
- Funded pensions :: As explained more fully in Chapter 3, funded
pensions are paid on behalf of its members.
- Funded pensions :: As explained more fully in Chapter 3, funded
pensions are paid on behalf of its members.
Deze tekst lijkt mij zoals je wilt.
Als u C-u C - + uitvoert, krijgt zelfs de inspringing gelijk:
* first header
- Funded pensions :: As explained more fully in Chapter 3, funded
pensions are paid on behalf of its members.
- Funded pensions :: As explained more fully in Chapter 3, funded
pensions are paid on behalf of its members.
- Funded pensions :: As explained more fully in Chapter 3, funded
pensions are paid on behalf of its members.