注意:元のバージョンの paragraph-fill
の問題は、リージョンがアクティブな場合に fill-region
を呼び出すことです。これにより、すべてのアイテムが、複数の塗りつぶしアイテムではなく、1つの塗りアイテムにマージされます。
代わりに、各段落を fill-paragraph
の非インタラクティブ版で塗りつぶす fill-region-paragraphs
というコマンドがあります。
したがって、領域内のアイテムは別々に塗りつぶされます。
コードでは、コマンドはキーシーケンス C-c f にバインドされています。これを好きなように変更することができます。
(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)
以下では、別の質問への回答
paragraph-fill
を追加しました。
まず、記入したい項目を選択します。次に、接頭辞arg C-u と C - + を押して、必要な書式を取得します。
(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)
emacs -Q
25.1.50.2テストでは、以下のorgファイル test.org
を使用しました。
* 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.
すべての項目を領域として選択し、 fill-region-as-paragraph
を呼び出した結果、
* 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.
それは明らかにあなたが望むものではありません。
fill-region-paragraphs
の結果を次のテキストに適用します。
* 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.
この文章はあなたが望むもののように私に見えます。
C-u C - + を実行するとインデントの権利が得られる:
* 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.