在Windows下使用emacs作为编辑器提交git
在Windows中使用git bash,我将我的在Windows下使用emacs作为编辑器提交git,windows,git,emacs,Windows,Git,Emacs,在Windows中使用git bash,我将我的core.editor设置为: c:/program/emacs-24.2/bin/emacs --no-splash -geometry 110x58+200+2 在git提交时,一个新的emacs框架按预期打开。打开的缓冲区的名称为$@。我无法保存缓冲区并退出emacs。Git抱怨提交消息是空的 我有一个解决办法,就是将我的core.editor设置为: c:/program/emacs-24.2/bin/emacs --no-splash
core.editor
设置为:
c:/program/emacs-24.2/bin/emacs --no-splash -geometry 110x58+200+2
在git提交时,一个新的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作为提交编辑器(除了在终端中打开它)?我建议您
- -但显然,这只是unix,或者
- 像往常一样运行
,并使用Emacs
启动服务器,或将M-x server start RET
添加到(服务器启动)
。Emacs
git
,请使用emacsclient
而不是emacs
作为核心编辑器
但是,将Emacs
与git
一起使用的最佳方法是vc
:
在Emacs
中,键入C-x v d your/git/repo/root/dir RET以获取修改文件的列表,用m标记要提交的文件,键入C-x v v以提交它们-将显示提交消息的缓冲区(使用ChangeLog
条目为您初始化,如果有),编辑它,键入C-C-C,您就完成了。在emacs中为git提供了另一个非常好的接口。magit
背后的思想是在emacs中为您提供一个交互式界面,以便轻松运行所有常用的git命令,基本上不需要您直接从命令行运行git
尽管它不是标准的(与另一个答案中提到的vc
)不同,您可以使用打包系统(例如从或存储库)非常简单地安装它。这在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'
我得到了与您相同的“$@”缓冲区。谢谢您的提示。我一直在使用egg,目前正在研究magit(用于emacs集成)。我会给vc一个机会,但有时我还是想从bash那里承诺。我也一直在考虑将Emacs作为一个守护进程运行,但它似乎在windows上运行得不太好--daemon
不是一个有效选项。@Gauthier:即使您启动了常规的emacs(非daemon),也可以使用EmacClient
;然而,我发现我确实在windows上使用了emacs守护进程;你的emacs可能是旧的吗?正如sds的链接所描述的那样,我对把emacs作为系统守护进程启动持怀疑态度,你可以告诉任何emacs成为服务器;请参阅EmacClient手册页,但简短的形式是从运行的emacs运行M-x server start
,然后将其保留;编辑完客户端弹出的任何缓冲区后,点击C-x#
24.3.1。EmacClient需要--服务器文件
或--备用编辑器
(或相应的环境变量)。我想当然地认为服务器文件是由emacs--daemon
创建的,但也许我错了?@jthill:这很好。我将不得不在手册页上读更多的内容。这不是一个正确的答案。只有当你解决了OP的问题,你才应该发帖。否则,请将其发布在评论部分