繁体   English   中英

git 与 emacs 一起作为编辑在 Windows 下提交

[英]git commit with emacs as editor under Windows

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

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

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

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

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

这可行,但有几个缺点:

  • 我必须在包含 .git 文件夹的目录中。 如果我在子目录中,它就不起作用。
  • 打开的 emacs 框架有两个 windows,一个带有COMMIT_EDITMSG ,一个带有$@

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

我建议你

如果你坚持从命令行运行git ,那么使用emacsclient而不是emacs作为你的core.editor (在完成编辑后,在客户端缓冲区中点击Cx#将控制权传回git )。

但是,使用git使用Emacs的最佳方法是vc

Emacs ,键入Cx vd your / git / repo / root / dir RET以获取已修改文件的列表,标记要使用m提交的文件,键入Cx vv以提交它们 - 将显示提交消息的缓冲区(已初始化为你使用ChangeLog条目(如果有的话),编辑它,键入Cc Cc ,你就完成了。

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

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

这在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'

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

我在网上找到的任何东西都没有按照我想要的方式工作,令人惊讶的是我还没有看到这个命令..所以,这是我如何让 emacs 在 Git 中为 windows 工作:

git config --global core.editor "'C:\Program Files\Emacs\x86_64\bin\runemacs.exe' -wait"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM