我正在试用Windows上的Git。我到了尝试“git commit”的地步,我得到了这个错误:

终端是哑的,但没有视觉也 编辑器定义。请提供 消息使用-m或-F选项。

所以我发现我需要一个叫做EDITOR的环境变量。没有问题。我把它设置为指向记事本。这几乎奏效了。默认的提交消息在记事本中打开。但是记事本不支持换行。我出去得到了notepad++,但我不知道如何将notepad++设置为%EDITOR%,使其与Git正常工作。

我没有嫁给notepad++。在这一点上,我不介意我使用什么编辑器。我只是希望能够在编辑器中而不是在命令行中输入提交消息(使用-m)。

那些在Windows上使用Git的人:你使用什么工具来编辑你的提交消息,你必须做什么才能让它工作?


当前回答

不管怎样,我只是在玩这个,发现下面的工作对我来说很好:

git config --global core.editor "'C:/Program Files/TextPad 5/TextPad.exe' -m"

我不认为CMD喜欢单引号,所以你必须使用双引号“来指定空格嵌入字符串参数”。

Cygwin(我相信它是Git的Bash的底层平台)另一方面喜欢“和”;你可以指定一个类似cmd的路径,使用/而不是\,只要字符串是引号,即在这个例子中,使用单引号。

-m覆盖/表示使用多个编辑器,不需要在末尾加%*。

其他回答

我设法通过使用引号和/设置编辑器变量来获得环境版本:

EDITOR="c:/Program Files (x86)/Notepad++/notepad++.exe"

这是我使用Geany作为Git编辑器的设置:

git config --global core.editor C:/path/to/geany.bat

geany.bat中包含以下内容:

#!/bin/sh
"C:\Program Files\Geany\bin\Geany.exe" --new-instance "$*"

它可以在DOS控制台和msysgit中工作。

我发现了一个漂亮的简单的解决方案张贴在这里-虽然可能有一个错误的路径,你必须复制的“subl”文件由作者给出。

我运行的是Windows 7 x64,我必须把“subl”文件放在我的/Git/cmd/文件夹中才能使它工作。

不过,它的效果很好。

notepad++工作得很好,尽管我选择坚持使用Notepad, -m,有时甚至是内置的“编辑”。

您在使用notepad++时遇到的问题与Git如何启动编辑器可执行文件有关。我对此的解决方案是将环境变量编辑器设置为一个批处理文件,而不是实际的编辑器可执行文件,这样做如下:

start /WAIT "E:\PortableApps\Notepad++Portable\Notepad++Portable.exe" %*

/WAIT告诉命令行会话停止,直到应用程序退出,这样当Git愉快地等待您时,您就可以按照自己的意愿进行编辑。%*将批处理文件的所有参数传递给notepad++。

C:\src> echo %EDITOR%
C:\tools\runeditor.bat

感谢Stack Overflow社区…和一点研究,我能够得到我最喜欢的编辑器,EditPad Pro,作为msysgit 1.7.5的核心编辑器。GIT和TortoiseGit v1.7.3.0在Windows XP SP3…

按照上面的建议,我为代码编辑器添加了Bash脚本的路径…

git config --global core.editor c:/msysgit/cmd/epp.sh

然而,在对上述解决方案进行了几次失败的尝试后……我终于把它修好了。根据EditPad Pro的文档,添加'/newinstance'标志将允许shell等待编辑器输入…

在我的例子中,'/newinstance'标志是关键…

#!/bin/sh
"C:/Program Files/JGsoft/EditPadPro6/EditPadPro.exe" //newinstance "$*"