5

在 Windows 中使用 git bash,我将 my 设置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 作为提交编辑器(除了让它在终端中打开)?

4

4 回答 4

5

我建议你要么

  • 将 Emacs 作为守护进程运行- 但这显然是仅适用于 unix 的,或者
  • Emacs像往常一样运行并使用M-x server-start RET或添加(server-start)到启动服务器.emacs

如果您坚持从命令行运行(在完成编辑后在客户端缓冲区中命中以将控制权传递回) ,则使用emacsclient而不是emacs您的。core.editorgitC-x #git

但是,最好的使用Emacs方式gitvc

Emacs中,输入C-x v d your/git/repo/root/dir RET以获取已修改文件的列表,标记您要提交的文件m,输入C-x v v以提交它们 - 出现提交消息的缓冲区(使用ChangeLog条目为您初始化,如果有的话),编辑它,输入C-c C-c,然后您就是完毕。

于 2013-03-11T16:09:45.523 回答
2

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

我得到了和你一样的 '$@' 缓冲区。

于 2014-11-13T12:59:48.953 回答
1

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

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

于 2013-03-11T19:23:42.083 回答
0

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

git config --global core.editor "'C:\Program Files\Emacs\x86_64\bin\runemacs.exe' -wait"
于 2021-08-13T14:29:16.697 回答