我已将Git的“core.editor”配置设置为“emacsclient”,并在启动服务器的情况下运行Emacs会话。当我从终端运行“git commit”时,它按照预期在我的Emacs中打开一个新的缓冲区,但是这个缓冲区总是处于“基本模式”。它曾经以magit用来编辑提交消息的任何模式打开,但这是一台新计算机,我只是不确定所有部分是如何协同工作的。我甚至不清楚magit使用什么模式,因为它是一个小模式集合而不是主模式。所以我有点难过如何解决这个问题。
任何帮助表示赞赏!
答案 0 :(得分:2)
我不确定magit
使用什么,但vc
应该使用log-edit-mode
的变体。
(require 'log-edit)
(require 'vc-git)
(add-to-list 'auto-mode-alist '("COMMIT_EDITMSG\\'" . vc-git-log-edit-mode))
我需要require
s真的很奇怪; Emacs中有一个错误,或者我正在做一些奇怪的事情(虽然这对我来说似乎没什么奇怪的。)
答案 1 :(得分:1)
我遇到了同样的问题并在此处找到了解决方案:
https://emacs.stackexchange.com/a/17733/12560
其实我只需添加
(global-git-commit-mode)
到我的初学者并且有效。
答案 2 :(得分:1)
作为@bingen's answer的扩展,如果您是use-package
用户,
(use-package git-commit
:init
(global-git-commit-mode)
)
即使启用了延迟加载也能正常工作:
(setq
use-package-always-defer t
use-package-always-ensure t
)