windows - Windows如何设置一个编辑器和Git一起工作?

  显示原文与译文双语对照的内容

在 Windows, 我在试出 git. 我在尝试"git提交",得到了这个错误:

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

所以我想我需要一个叫做编辑器的环境变量。 没问题。我把它设置为指向记事本。 几乎可以正常工作。默认提交消息在记事本中打开。 但是记事本不支持裸换行符。 上面去为expected,我就停了,有了 NotePad++,但我不能确定如何让 NotePad++ 在 %EDITOR% 设置任意的方式会导致它 works.

我没有与 NotePad++ 结婚。 现在我不介意我使用什么编辑器。 在编辑器中而非 命令行 我只是希望能够提交 messages. 类型

在 Windows 上使用Git的人: 你使用什么工具来编辑你的提交消息,你需要做什么来使它的工作?

时间:

建立在 的答案上,使用 NotePad++,你可以简单地执行以下操作:

在 32位操作系统上: git config --global core.editor"'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

在 64位操作系统上 git config --global core.editor"'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

显然 C:/Program Files/Notepad++/notepad++.exe 部件应该是系统上 NotePad++ 可执行文件的路径。 例如在 Windows 7上,它可能是 C:/Program Files (x86)/Notepad++/notepad++.exe 感谢评论者指出这一点。

对我来说是个魅力。

总之,我一直在玩这个,发现下面的工作非常适合我:


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

我不认为CMD喜欢single-quotes所以你必须使用双引号"指定嵌入的字符串参数的空间"。

另一方面,Cygwin ( 我相信这是git的底层平台) 同时喜欢 '" ;你可以使用 / 而不是 指定CMD-like路径,只要该实例中的字符串是引用的换句话说,使用 single-quotes 。

-m 替代/表示使用多个编辑器,不需要在末尾加上 %*

编辑: 敬请谅解以 vim 7.3最整洁的,而且,我已经总结点数,简单做法是:

  1. 在你的路径添加vim文件夹的主文件夹( 右键单击我的计算机-> 属性-> 高级-> 环境变量 )

  2. 运行以下命令: git config --global core.editor"gvim --nofork '%*'"

这种方式与以well,看起来好像并不是很,如果你这么做,那么我是清楚地确定它将之工作

原始答案:

即使有几个vim-related答案,我也遇到了在 Windows ( 不使用批处理文件或者 %EDITOR% 或者 cygwin ) 下使用gvim的问题。

在一些题目的解法here,什么我最终到达了十分简洁漂亮,和 draws:


git config --global core.editor 
"'C:/Program Files/Vim/vim72/gvim.exe' --nofork '%*'"

花了我一段时间的疑难杂症之一是这些不是Windows-style反斜杠,它们是普通的正斜杠。

NotePad++ 工作正常,虽然我选择坚持记事本,-m,甚至有时候内置的"编辑。"

使用 NotePad++ 遇到的问题与git如何启动编辑器可执行文件相关。 我的解决方案是将编辑器设置为批处理文件,而不是实际的编辑器可执行文件,该文件执行以下操作:


start/WAIT"E:PortableAppsNotepad++PortableNotepad++Portable.exe" %*

/WAIT告诉 命令行 会话暂停直到应用程序退出,这样你就可以编辑你的内容,而git高兴地等待你。 %* 通过 NotePad++ 将所有参数传递到批处理文件。


c:src>echo %EDITOR%
c:toolsruneditor.bat

我也在 Windows 上使用 Cygwin,但使用 gvim ( 与 terminal-based vim 相反) 。

为了完成这项工作,我执行了以下操作:

  1. 创建了一个包含以下内容的one-line批处理文件( 命名 git_editor.bat ):
    "C:/Program Files/Vim/vim72/gvim.exe" --nofork"%*"
  2. git_editor.bat 置于我的PATH 中。
  3. 设置 GIT_EDITOR=git_editor.bat

完成之后,git commit 将正确调用gvim可执行文件。

注意 1: gvim的--nofork 选项确保它阻塞,直到提交消息被写入。

注意 2: 如果路径中有空格,则需要gvim的路径周围的引号。

注意 3: 在"%*"传递文件路径时,需要使用周围的引号。

感谢社区。。 和少量研究我能够得到我最喜欢的编辑器,EditPadPro,到当红的核心编辑器与 msysgit 1.7.5. GIT 和 TortoiseGit v 1.7.3.0 超过 WinXP SP3 - -

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


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

但是在上述解决方案的几次失败尝试之后。。 我终于能得到这个工作了。 每个editpadpro文档,添加'/newinstance'标志将允许shell等待编辑器输入。。

在我的案例中,'/newinstance'标志是关键。。


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

写字板

使用真空感应,但我很高兴因为我在尝试向公司引入Git我想要的东西,我们都有了,并发现写字板似乎工作好( 例如 。 当你完成编辑并关闭窗口时,Git将一直等待。


git config core.editor '"C:Program FilesWindows NTAccessorieswordpad.exe"'

我在 Windows 上使用了 Git Bash ;我没有从命令提示符( 如果这会有什么区别) 尝试。

这是问题的1个症状。 值得注意的是,你有一些设置 TERM=dumb 。 其他不能正常工作的事情是你没有完全功能终端的命令。 这似乎是最常见的原因,因为在你的全局 Windows 环境变量 中设置了术语。 对于我来说,在安装 Strawberry Perl时出现了一些问题,关于这个问题的 bsf Bug,以及一些解决方案。

第一个解决方案是在你的~/.bashrc 中添加:

 
export TERM=msys

 

你可以像这样使用 Git BASH提示符:


echo"export TERM=msys">> ~/.bashrc

在这里发表评论 msysgit Bug 报表,另一种解决方案,最终制成是我所做的,因为我不关心这个perl用于添加 TERM=dumb Strawberry 原因,与麦克西的环境设置是否设置并移除TERM=dumb警报 directed.

在控制 Panel/System/Advanced/Environment 变量。。( 或者类似的,取决于你的Windows 版本) 为置顶 环境变量 set.是哪 默认情况下,未设置术语。 如果在那里设置了术语,那么你( 或者你已经安装的一个程序- 比如。 Strawberry Perl已经设置了它。 删除该设置,你应该会很好。

类似的,如果你使用 CPAN Strawberry Perl和关心其中的客户端或者别的,你可以单独保留TERM=dumb和中使用 unset TERM 你 ~/.bashrc 文件,可以获得类似的效果来设置一个明确的术语,如上。

当然所有其他解决方案都是正确的,你可以使用 git config --global core.editor $MYFAVORITEEDITOR 确保git在需要启动你的编辑器时使用它。

...