如何将Emacs从emacsclient放入magit的提交编辑模式

时间:2016-05-25 20:19:39

标签: git emacs magit

我已将Git的“core.editor”配置设置为“emacsclient”,并在启动服务器的情况下运行Emacs会话。当我从终端运行“git commit”时,它按照预期在我的Emacs中打开一个新的缓冲区,但是这个缓冲区总是处于“基本模式”。它曾经以magit用来编辑提交消息的任何模式打开,但这是一台新计算机,我只是不确定所有部分是如何协同工作的。我甚至不清楚magit使用什么模式,因为它是一个小模式集合而不是主模式。所以我有点难过如何解决这个问题。

任何帮助表示赞赏!

3 个答案:

答案 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
 )