git使用emacs作为Windows下的编辑器进行提交

时间:2013-03-11 15:54:19

标签: windows git emacs

在Windows中使用git bash,我将core.editor设置为以下内容:

 c:/program/emacs-24.2/bin/emacs --no-splash -geometry 110x58+200+2

git commit后,新的emacs框架会按预期打开。打开的缓冲区名称为$@。我无法保存缓冲区并退出emacs。 Git抱怨提交消息是空的。

我有一个解决方法,即将core.editor设置为:

c:/program/emacs-24.2/bin/emacs --no-splash -geometry 110x58+200+2 .git/COMMIT_EDITMSG

这有效,但有一些缺点:

  • 我必须在包含.git文件夹的目录中。如果我在子目录中,它将无效。
  • 打开的emacs框架有两个窗口,一个显示COMMIT_EDITMSG,另一个显示$@

有没有更好的方法来选择emacs作为提交编辑器(除了在终端中打开它)?

3 个答案:

答案 0 :(得分:5)

我建议你

  • run Emacs as a daemon - 但显然是unix-only或
  • 照常运行Emacs并使用M-x server-start RET启动服务器或将(server-start)添加到.emacs
如果您坚持从命令行运行emacsclient(点击 Cx#),请使用emacs代替core.editor作为git git完成编辑后将客户端缓冲区传递回Emacs)。

但是,gitvc一起使用的最佳方式是Emacs

ChangeLog中,键入 Cx vd your / git / repo / root / dir RET 以获取已修改文件的列表,使用 m <标记要提交的文件/ kbd>,键入 Cx vv 提交它们 - 出现提交消息的缓冲区(使用{{1}}条目为您初始化,如果有的话),编辑它,键入 Cc抄送,你就完成了。

答案 1 :(得分:1)

magit提供了另一个非常好的emacs内git界面。 magit背后的想法是在emacs中为您提供一个交互式界面,以便轻松运行所有常用的git命令,从根本上不需要您从命令行直接运行git

虽然它不是标准的(与另一个答案中提到的vc不同),但您可以使用包装系统非常简单地安装它,例如来自melpamarmalade库。

答案 2 :(得分:1)

这在msysgit 1.7.11下适用于我:

git config core.editor '/d/bin/emacs-24.3/bin/emacs.exe'

但是当我切换到这个时:

git config core.editor '/d/bin/emacs-24.3/bin/emacs.exe --no-splash'

我和你一样有'$ @'缓冲区。