如何让 emacs 自动为 git 提交打开自动填充模式?

How can one automatically have emacs turn on auto-fill-mode for a git commit?

我想知道是否有办法让 emacs 在提交期间由 git 启动时打开自动填充模式?我查看了命令行选项,也许我可以使用 --load 或类似的东西来启动自动填充模式,但我怀疑有更好的方法吗?此外,git 目前设置为使用 emacs -nw 并在终端中打开。

可能有 几种 方法可以做到这一点(当然 ;-)。一种方法可能是为基本模式添加一个挂钩,它检查提交消息文件的目录,如果它在 .git/ 中,则添加自动填充模式。但事实证明,基本模式没有任何钩子,因为它是最简单的模式。

下一个想法可能是向任何启动挂钩添加一个函数。这导致我 Emacs Startup Summary。我没有测试任何这些,所以我不能推荐最好的钩子使用,或者它们是否可以工作,更好的方法是:

而是使用 add-to-list 'auto-mode-alist 和完整的提交消息文件名 COMMIT_EDITMSG 并将基本模式挂接到该文件的开头。

这是 Magit git-commit-mode 的作用:

(add-to-list 'auto-mode-alist
             '("/\(?:COMMIT\|NOTES\|TAG\|PULLREQ\)_EDITMSG\'"
               . git-commit-mode))

当然,您可能只是想简单地安装 entire package 而不是重新发明轮子。