有用过 aggressive-fill-paragraph-mode 的吗?

我试用了一下,没有什么效果。有什么诀窍吗?

这个是可以用的,但是因为主要针对英文,只是在插入空格和句号的时候才 refill。

可以修改其中的函数来令它在用输入法输入中文后自动 refill:

(defun aggressive-fill-paragraph-post-self-insert-function ()
  "Fill paragraph when space is inserted and fill is not disabled
for any reason."
  (when (and (or (-contains? afp-fill-keys last-command-event)
                 (string-prefix-p "CJK" (get-char-code-property
                                         last-command-event 'name)))
             (not (afp-suppress-fill?)))

    ;; Delete the charcter before filling and reinsert after. This is
    ;; needed because we don't know if filling will remove whitespace.
    (backward-delete-char 1)
    (funcall (afp-choose-fill-function))
    (insert last-command-event)))

把这个函数用 with-eval-after-load 包一下,放到你的 .emacs 中就OK了

题外话: 选择 fill 而不选择 visual-line 的主要原因是—— Git 啊,visual-line 句子太长了,diff 看起来不方便,你是怎么选择的呢?