Emacs Prelude `whitespace-empty-at-eob-regexp` 允许单个空行

Emacs Prelude `whitespace-empty-at-eob-regexp` allow single empty line

保存文件时,whitespace-cleanup 可以很好地清理空白:

https://emacsredux.com/blog/2013/05/16/whitespace-cleanup/

但是,我希望能够在缓冲区的末尾留一个空行,或者是全局的,或者为不同的模式添加一个钩子。

我想如果我编辑这个 whitespace-empty-at-eob-regexp 我应该可以做到?

whitespace-empty-at-eob-regexp 的值为 "^\([ ]+\)\'"

所以我想我可以添加一个 \n 但这并没有达到我想要的效果:

"^\([ ]+\n\)\'"

whitespace-empty-at-eob-regexp的值实际上是"^\([ \t\n]+\)\'"

我想在缓冲区末尾留一个空行。尝试:

(setq whitespace-empty-at-eob-regexp "^[ \t\n]\([ \t\n]+\)\'")

;; Tips: you can use xr and rx to play with regex more relaxed in emacs.
;; (xr "^[ \t\n]\([ \t\n]+\)\'")
;; (seq bol
;;      (any "\t\n ")
;;      (group
;;       (one-or-more
;;        (any "\t\n ")))
;;      eos)