如何在Windows上设置可以与Git一起使用的编辑器?


561

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

终端很笨,但是没有定义VISUAL或EDITOR。请使用-m或-F选项提供消息。

所以我发现我需要一个名为EDITOR的环境变量。没问题。我将其设置为指向记事本。几乎成功了。默认提交消息在记事本中打开。但是记事本不支持裸线换行。我出去买了Notepad ++,但是我不知道如何将Notepad ++设置为%EDITOR%可以与Git一起使用的方式。

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

那些在Windows上使用Git的人:您使用什么工具来编辑提交消息,并且需要做什么才能使其生效?


7
TLDR:将单引号引起来的编辑器可执行文件路径
yoyo

可能没有帮助,但是FWIW,我只使用常规的记事本。我没有做任何事情使其工作。默认情况下,它只是开箱即用...
BrainSlugs83

11
2015年9月更新:简单git config core.editor notepad就足够了。请参阅下面的更新后的答案
VonC

请注意,JEdit不是git的适当编辑器。JEdi​​t即使为多个文件也只打开一个实例。如果已经打开,git会使其打开一个新文件,但是在git继续之前,您必须完全关闭JEdit。没有命令行选项可导致JEdit打开单独的实例来编辑提交消息。
GrantRobertson

如果有人喜欢Sublime Text 3,以下是我如何在Windows ...和Linux上配置它的说明:Sublime Text 3作为git编辑器的最佳设置(Windows和Linux说明)。@yoyo,使用任何文本编辑器的TLDR:在Windows可执行文件的路径名中,将单引号括在编辑器可执行文件的路径周围,并使用正斜杠(/)而不是反斜杠(\)。
加布里埃尔·斯台普斯

Answers:


562

2015年9月更新(6年后)

git-for-Windows(2.5.3)最新版本现在包括:

通过配置git config core.editor notepad,用户现在可以notepad.exe用作其默认编辑器
配置git config format.commitMessageColumns 72将由记事本包装器进行拾取,并在用户编辑提交消息后将其换行。

提交69b301b约翰内斯Schindelin( )dscho

Git 2.16(Q1 2018)将显示一条消息,告知用户在生成编辑器时正在等待用户完成编辑,以防编辑器打开到隐藏的窗口或模糊的地方而导致用户迷路。

参见commit abfb04d(2017年12月7日)和commits a64f213(2017年11月29日)作者Lars Schneider(larsxschneider
帮助:Junio C Hamano(gitster
(由Junio C gitsterHamano合并--commit 0c69a13中,2017年12月19日)

launch_editor():指示Git等待用户输入

GIT_EDITOR通过打开并等待用户输入(例如“ git rebase -i”)的Git命令生成图形时,编辑器窗口可能会被其他窗口遮盖。
用户可能一直盯着原始的Git终端窗口,甚至没有意识到他/她需要在Git继续进行之前与另一个窗口进行交互。对于该用户,Git似乎挂起了。

如果终端支持擦除最后一行,则打印一条消息,告知Git在原始终端中等待编辑器输入,并在编辑器返回时删除它


原始答案

我刚刚使用git版本1.6.2.msysgit.0.186.gf7512和Notepad ++ 5.3.1进行了测试

我宁愿不必设置EDITOR变量,因此尝试了:

git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"

这总是给:

C:\prog\git>git config --global --edit
"c:\Program Files\Notepad++\notepad++.exe" %*: c:\Program Files\Notepad++\notepad++.exe: command not found
error: There was a problem with the editor '"c:\Program Files\Notepad++\notepad++.exe" %*'.

如果我定义一个npp.bat,包括:

"c:\Program Files\Notepad++\notepad++.exe" %*

然后输入:

C:\prog\git>git config --global core.editor C:\prog\git\npp.bat

它仅可在DOS会话中使用,而不能从git shell中使用
(不是使用core.editor配置机制,其中包含“ start /WAIT...” 的脚本将不起作用,而只能打开一个新的DOS窗口)


Bennett的答案提到可以避免添加脚本,而是直接在简单引号之间引用程序本身。注意斜线的方向!使用/NOT \分隔路径名称中的文件夹!

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"

但是我更喜欢使用脚本(请参见下文):这样,我可以使用不同的路径或不同的选项进行游戏,而无需再次注册git config


实际的解决方案(使用脚本)是要认识到:
您在配置文件中引用的实际上是shell(/bin/sh)脚本,而不是DOS脚本。

所以有效的是:

C:\prog\git>git config --global core.editor C:/prog/git/npp.bat

C:/prog/git/npp.bat

#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"

要么

#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"

有了该设置,我可以git config --global --edit从DOS或Git Shell中执行' ',也可以执行'git rebase -i ...从DOS或Git Shell中进行操作。
Bot命令将触发一个新的notepad ++实例(因此带有-multiInst'选项),并等待该实例关闭后再继续。

请注意,我仅使用'/',而不使用\'。然后使用选项2安装了msysgit。(添加git\bin目录到PATH环境变量中,但不覆盖某些内置Windows工具)

notepad ++包装器称为.bat的事实并不重要。
最好将其命名为“ npp.sh”并将其放在[git]\cmd目录中(或放置在PATH环境变量引用的任何目录中)。


也可以看看:


lightfire228添加了评论

对于任何人问题,其中N ++只是打开一个空白文件,而git不接受您的提交消息,请参阅“ 由于空消息而中止提交 ”:将您的.bator .sh文件更改为:

"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>. 

这将告诉notepad ++打开临时提交文件,而不是空白的新提交文件。


在您的Shell脚本中,您需要在$ *前后加上双引号,否则对于其中带有空格的路径将无法正常使用。感谢您的详尽解释-我正在Windows上为新手程序员安装git(以及其他工具),并且在不让他们学习vi命令的情况下,命令行很难被破解。
莎拉·梅


1
贝内特的回答你并不需要创建一个脚本,你可以用单引号'引号内。”
托比亚斯Kienzler

@Tobias:是的,我已经将他的答案包括在我的答案中,以及为什么我仍然更喜欢在git config设置中引用脚本的原因。
VonC

6
@NateGlenn使用缩短的dir /X等效项:“ PROGRA~2”表示“ Program Files (x86)”,这是在Windows上使用跨平台兼容工具时的一种好习惯,它允许您压缩空格。
JJ Zabkar,

300

Darren的答案的基础上,要使用Notepad ++,您可以简单地做到这一点(全部一行):

git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

显然,该C:/Program Files/Notepad++/notepad++.exe部分应该是系统上Notepad ++可执行文件的路径。例如,可能是C:/Program Files (x86)/Notepad++/notepad++.exe

对我来说,它就像是一种魅力。


10
我也是!顺便说一句,这些开关在C:/ Program Files / Notepad ++ / user.manual / documentation / notepad-user-manual / command-line.html中进行了解释-Andrew
Swan,

23
注意位于“ C:\ Program Files(x86)”中的Notepad ++
mindless.panda

8
对于x64 Windows,请更改为:git config --global core.editor“'C:/ Program Files(x86)/ Notepad ++ / notepad ++。exe'-multiInst -notabbar -nosession -noPlugin”
Dariusz

4
我知道我参加这个聚会已经很晚了,但是出于好奇,有人知道(甚至还记得这些年来)为什么有人会指定“ -notabbar”吗?我理解其他参数背后的原因(嗯,不确定为什么实际上是“ -noPlugin”),但不是这个。
威尔逊F

11
@WilsonF原因是因为您必须退出notepad ++以便git停止等待输入并继续。您不希望在此Notepad ++实例中打开其他选项卡,因为这样一来,您的git会话将被冻结!这些设置完全正确:如果已经打开Notepad ++,则会获得一个新实例,该实例不允许您打开其他文件,并且必须在完成后关闭,以使git知道您已完成编辑。提交消息的工作原理相同。
ErikE 2015年

50

无论如何,我一直在玩这个游戏,发现以下内容很适合我:

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

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

Cygwin的(我相信是的Git的Bash的基础平台),另一方面都喜欢'"; 您可以使用/而不是指定类似CMD的路径\只要使用单引号将字符串引号(即在这种情况下)即可。

-m重写/指示使用多个编辑器,并没有必要为一个%*上涨的结束。


感谢您对单引号/双引号的解释,现在有意义!
帕特里克·麦克唐纳

3
git config --global core.editor "'C:\Program Files\Sublime Text 3\sublime_text.exe' -m"对我来说就像一个魅力。
弗拉德·霍尔比耶夫

我用`git config --global code.editor“'C:\\ Program Files \\ Sublime Text 3 \\ sublime_text.exe'-n -w -m”`,但是当我运行“ git commit”时,它会打开记事本编辑器。有什么想法为什么会这样呢?提前致谢。
瑞安·蔡斯

@RyanChase从./git/config中删除本地配置条目,例如editor = notepad
Ricky Boyce,

1
Git Bash在MingW64而非Cygwin下运行。Cygwin有自己的Git二进制文件。
汉斯·德拉贡

27

编辑:更新到Vim 7.3后,我得出的结论是,最干净,最简单的方法是:

  1. 将Vim的主文件夹添加到您的路径中(右键单击“ 我的电脑” →“ 属性” →“ 高级” →“ 环境变量”

  2. 运行这个:

    git config --global core.editor "gvim --nofork '%*'"
    

如果您采用这种方式,那么我肯定会与Cygwin一起使用。

原始答案:

即使有几个与Vim相关的答案,我也很难使它在Windows下与gVim一起使用(而未使用批处理文件或%EDITOR%或Cygwin)。

我最终得出的结论是干净利落的,并从这里的一些解决方案中得出了结论:

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

我花了一段时间的一个陷阱是这些不是Windows风格的反斜杠。它们是正常的正斜杠。


1
如果在中安装了vim Program Files(x86),那么您显然需要更改路径。
Swapnil 2014年

15

尽管我选择坚持使用记事本,-m甚至有时使用内置的“编辑”,但Notepad ++仍然可以正常工作。

使用Notepad ++遇到的问题与Git如何启动编辑器可执行文件有关。我对此的解决方案是将环境变量EDITOR设置为批处理文件,而不是实际的编辑器可执行文件,该文件将执行以下操作:

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

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

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

我很难让它在Powershell下工作。这种方法(stackoverflow.com/questions/10564/…)虽然工作正常。
彼得·史蒂芬斯

11

写字板

我很高兴使用Vim,但是由于我想向公司介绍Git,所以我想要我们所有人都拥有的东西,并发现WordPad似乎可以正常工作(即,Git确实要等到完成编辑并关闭后才能使用)窗户)。

git config core.editor '"C:\Program Files\Windows NT\Accessories\wordpad.exe"'

那是在msysgit上使用Git Bash;我没有从Windows命令提示符下尝试过(如果有任何区别)。


我喜欢这种简单性,但是开箱即用对我来说不起作用。这是我尝试过的。我收到以下错误消息:错误:编辑器'C:\ Program Files \ Windows NT \ Accessories \ wordpad.exe'出现问题。
Shaun Luttin

3
引号不正确。您必须将双引号放在单引号之外。也就是说,使用“'C:\ Program Files \ Windows NT \ Accessories \ wordpad.exe'”,然后它将起作用。
Shaun Luttin

您可能还受益于正斜杠(/)而不是反斜杠(\)。
克里斯·琼斯

1
另外,最好使用“ git config --global”而不是“ git config”。您很可能希望将该设置应用于工作站上的所有git存储库,而不仅仅是您现在所在的那个。
克里斯·琼斯

@ChrisJones,在这种情况下没有意义,因为“程序文件”之间有一个空格。
Pacerier,2015年

9

我也在Windows上使用Cygwin,但使用了gVim(与基于终端的Vim相对)。

为了使这项工作,我做了以下工作:

  1. 创建了一个单行批处理文件(名为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:--noforkgVim 的选项可确保它一直阻塞,直到已写入提交消息为止。

注意2:如果路径中有空格,则必须在gVim路径周围加引号。

注意3:如果Git传递带有空格的文件路径,则需要在“%*”周围加上引号。


对于使用msysgit(而不是cygwin的git)的人,我可以简化一下。 stackoverflow.com/questions/10564/...
尼克Knowlson

再次考虑到它也可以与cygwin一起使用,我不太确定
Nick Knowlson

8

多亏了Stack Overflow社区...以及一些研究,我才得以得到我最喜欢的编辑器 EditPad Pro成为Windows XP SP3上的msysgit 1.7.5.GIT和TortoiseGit v1.7.3.0的核心编辑器。 ..

按照上述建议,我将路径添加到代码编辑器的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 "$*"

是的,newinstance参数的双斜杠应该在Editpad的文档中。感谢您在这里注意!
gwideman 2014年

EditPad Pro需要命令行开关,例如/newinstance正好有一个正斜杠。对于Windows应用程序,这是相当正常的。如果要从UNIX Shell调用EditPad,则需要使用Shell提供的任何机制来转义正斜杠,这样它就不会将开关视为绝对路径,而是将单个文字正斜杠传递给EditPad的命令行。
Jan Goyvaerts 2014年

2
如果您具有EditPad Pro 7,并且要从要等待EditPad进程等待的进程中调用EditPad Pro,则应/wait在EditPad命令行上传递此开关。您可以使用/wait带有或不带有/newinstance控件来控制是否应打开一个新的EditPad窗口,还是应重用一个现有的窗口。脚本启动的过程将等待文件关闭,而不管窗口是创建还是重用。EditPad Pro 6和更低版本不支持/wait
Jan Goyvaerts 2014年

@JanGoyvaerts〜谢谢你的/wait旗帜提示先生... :)
Eddie B

通过使用上面的说明,我无法让EditPad Lite正常工作。可能是因为我试图使用Windows终端而不是Git Bash或其他UNIX Shell来调用EditPad(通过Git)。对我[core]有用的是直接编辑.gitconfig 的部分以包括该行editor = "'C:/Program Files/Just Great Software/EditPad Lite 7/EditPadLite7.exe' //wait //newinstance"
user697473


6

编辑c:\ Users \ YourUser文件夹中的.gitconfig文件,然后添加:

[core]
editor = 'C:\\Program files\\path\\to\\editor.exe'

6

这是更大问题的征兆。值得注意的是,您有一些设置TERM=dumb。其他无法正常工作的是less命令您没有完整功能的终端。

似乎这最常见是由在全局Windows环境变量中将TERM设置为某种值引起的。对我来说,当我安装Strawberry Perl时出现了这个问题,有关此问题的一些信息在msysgit错误上,以及一些解决方案上。

第一种解决方案是通过添加以下内容来在〜/ .bashrc中修复该问题:

export TERM=msys

您可以从Git Bash提示符处执行以下操作:

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

其他的解决方案,最终是我做的,因为我不关心草莓Perl的理由加入TERM=dumb到我的环境设置,是去和删除TERM=dumb指向上msysgit bug报告此评论

在Windows上设置粘性环境变量的位置是“控制面板/系统/高级/环境变量...”(或类似的变量,具体取决于您的Windows版本)。默认情况下,未设置TERM。如果在其中设置了TERM,则说明您(或已安装的其中一个程序,例如Strawberry Perl)已对其进行设置。删除该设置,就可以了。

同样,如果您使用Strawberry Perl并关心CPAN客户端或类似的东西,则可以不理会它TERM=dumb,并unset TERM在〜/ .bashrc文件中使用它,其作用与设置上述显式术语相似。

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


非常感谢!我因为草莓perl而遇到了这个问题,这让我发疯了!感谢您指出这一点
德米特里·阿夫托诺莫夫


4

我的PortableGit 1.6运行正常,但是升级到PortableGit 1.7 Windows版本后,出现了问题。有些Git命令可以很好地打开Notepad ++。exe,但有些则不能,特别是Git重新设置基准行为有所不同。

问题是某些命令运行Windows cmd进程,而某些命令使用Unix cmd进程。我想将启动属性赋予Notepad ++编辑器,因此我需要有一个自定义脚本。我的解决方案是这样。

  1. 创建一个脚本以运行适当的文本编辑器。该脚本看起来很奇怪,但是它可以处理Windows和Unix版本。

    c:/PortableGit/cmd/git-editor.bat

    #!/bin/sh
    # Open a new instance
    
    function doUnix() {
      "c:\program files\notepad++\notepad++.exe" -multiInst -nosession -notabbar $*
      exit
    }
    
    doUnix $*
    
    :WINCALL
    "c:\program files\notepad++\notepad++.exe" -multiInst -nosession -notabbar %*
    
  2. 设置全局core.editor变量

    该脚本已保存到git / cmd文件夹,因此它已经在gitconsole路径中。这是必填项,因为完整路径可能无法正常工作。

    git config --global core.editor "git-editor.bat"
    

现在,我可以运行git commit -agit rebase -i master命令。如果您在Git Windows工具中遇到问题,请尝试一下。


4

我在多个平台上使用Git,我喜欢在所有平台上使用相同的Git设置。(实际上,我所有的配置文件都由Git进行发布控制,并在每台计算机上放置一个Git存储库克隆。)我想到的解决方案是:

我将编辑器设置为giteditor

git config --global core.editor giteditor

然后,我在PATH中创建一个名为giteditor的符号链接。(我有一个个人的bin目录,但是PATH中的任何地方都可以使用。)该链接指向我当前选择的编辑器。在不同的机器和平台上,我使用不同的编辑器,因此这意味着我不必更改通用Git配置(.gitconfig),只需更改giteditor的链接即可。指向即可。

我知道,每个符号链接都由每个操作系统处理,尽管它们可能使用不同的命令。对于Linux,使用ln -s。对于Windows,请使用cmd内置的mklink。它们具有不同的语法(您应该查看它们),但实际上它们的工作方式相同。


实际上,我在Windows7上尝试过此操作,但无法通过msys git正常运行。它说error: cannot spawn giteditor: No such file or directory
DanielSank

4

根据VonC的 建议,这对我有用(使我发疯):

git config --global core.editor "'C:/Program Files (x86)/Sublime Text 3/subl.exe' -wait"

省略-wait会导致问题,尤其是在使用Gerrit并更改必须手动复制到提交消息底部的ID时。


4

我需要执行以下两项操作才能使Git在Windows中启动Notepad ++:

  • 将以下内容添加到.gitconfig中:

    editor = 'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin
    
  • 修改快捷方式以启动Git Bash Shell以管理员身份运行,然后使用该快捷方式启动Git Bash Shell。我猜测上下文菜单项“此处的Git Bash”没有以所需的权限启动Notepad ++。

完成上述两项操作后,它就可以工作了。


3

我在Windows上使用Cygwin,因此我使用:

export EDITOR="emacs -nw"

-nwno-windows,即告诉Emacs的不要尝试使用X窗口

Emacs键盘绑定不适用于Windows shell,因此我只能在Cygwin shell中使用它(建议使用rxvt。)


3

这是我使用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中使用。


2
VonC回答了有关notepad ++的问题,我的回答是针对Geany吗?
CharlesB 2011年

2

如果路径中有空格,似乎Git找不到编辑器。因此,您必须将Patrick的答案中提到的批处理文件放入非空白路径。


3
此格式适用于带有空格的路径:git config --global core.editor“ \” c:\ Program Files \ textpad 5 \ textpad.exe \“”,因此避免创建批处理文件对您来说可能很实用
Carl

2

我很难让Git与WordPadKomodo Edit以及我提供的几乎所有其他编辑器合作。大多数打开以进行编辑,但是Git显然不等待保存/关闭发生。

作为拐杖,我一直在做

git commit -m "Fixed the LoadAll method"

保持进展。它倾向于使我的提交消息比可能应该的短一些,但是显然在Windows版本的Git上需要做一些工作。

GitGUI也还不错。它需要一些定位,但是在那之后,它运行得很好。


2

我更喜欢使用Emacs。进行设置可能有些棘手。

  1. 下载Emacs并将其解压缩c:\emacs
  2. 运行c:\emacs\bin\addpm.exe。如果您使用的是Windows Vista或更高版本,则需要右键单击并“以管理员身份运行”。这会将可执行文件放在您的路径中。
  3. (server-start).emacs文件中添加某处。有关将文件放置在何处的建议,请参阅Emacs Windows常见问题解答.emacs
  4. git config --global core.editor emacsclientw

Git现在将在现有的Emacs进程中打开文件。您将必须从中手动运行该现有过程c:\emacs\bin\runemacs.exe


1

我设法通过使用引号和设置EDITOR变量来使环境版本正常工作/

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

1

我遇到了同样的问题,找到了不同的解决方案。我正在

error: There was a problem with the editor 'ec'

我有VISUAL=ec,并且ec.bat在我的路径上调用了一个包含一行的批处理文件:

c:\emacs\emacs-23.1\bin\emacsclient.exe %*

这使我可以使用命令行从命令行编辑文件ec <filename>,并且VISUAL设置后意味着大多数unixy程序也可以选择它。Git的似乎是不同的搜索到我的其他命令虽然路径-当我看着一个git commit进程监视器,我看到它看起来每个文件夹的路径上ecec.exe,但不适合ec.bat。我添加了另一个环境变量(GIT_EDITOR=ec.bat),一切都很好。


1

我正在使用适用于Windows的GitHub,这是一个不错的视觉选择。但是我也更喜欢命令行,因此,当我在Git shell中打开存储库时,要使其工作,我只需设置以下内容:

git config --global core.editor vim

效果很好。



1

我发现这里发布一个非常简单的解决方案-尽管您必须复制作者给出的“ subl”文件的路径中可能存在错误。

我正在运行Windows 7 x64,并且必须将“ subl”文件放在/Git/cmd/文件夹中才能正常工作。

不过,它的工作原理就像一种魅力。


1

Atom和Windows 10

  1. 我右键单击桌面上的Atom图标,然后单击属性。
  2. 复制了“开始于”位置路径
  3. 使用Windows资源管理器查看那里,发现“ atom.exe”。
  4. 我在Git Bash中输入以下内容:

    git config --global core.editor C:/Users/YOURNAMEUSER/AppData/Local/atom/app-1.7.4/atom.exe"
    

注意:我已将全部更改\/。我在主目录中创建了一个.bashrc并用于/设置主目录,该目录可以正常工作,因此我假设/这是的方法。


请检查此URL,这对提高您的内容质量很有用
Willie Cheng

@willie谢谢,我格式化了文本并添加了一些标签。希望会有所改善。
乔纳森·拉莫斯

0

这是Cygwin的解决方案:

#!/bin/dash -e
if [ "$1" ]
then k=$(cygpath -w "$1")
elif [ "$#" != 0 ]
then k=
fi
Notepad2 ${k+"$k"}
  1. 如果没有路径,则没有路径

  2. 如果路径为空,则传递空路径

  3. 如果path不为空,则转换为Windows格式。

然后设置这些变量:

export EDITOR=notepad2.sh
export GIT_EDITOR='dash /usr/local/bin/notepad2.sh'
  1. EDITOR允许脚本与Git一起使用

  2. GIT_EDITOR允许脚本使用Hub命令

资源


0

这对我使用Cygwin和TextPad 6起作用(编辑:只要对脚本进行了明显的更改,它也可以与TextPad 5一起工作),并且该模型也可以用于其他编辑器:

档案~/.gitconfig

[core]
    editor = ~/script/textpad.sh

档案~/script/textpad.sh

#!/bin/bash

APP_PATH=`cygpath "c:/program files (x86)/textpad 6/textpad.exe"`
FILE_PATH=`cygpath -w $1`

"$APP_PATH" -m "$FILE_PATH"

这种单行代码也可以正常工作:

文件~/script/textpad.sh(选项2):

"`cygpath "c:/program files (x86)/textpad 6/textpad.exe"`" -m "`cygpath -w $1`"

0

这为我工作:

  1. 将包含编辑器可执行文件的目录添加到PATH变量。(例如“ C:\ Program Files \ Sublime Text 3 \”
  2. 重新启动计算机。
  3. core.editor全局Git变量更改为不带扩展名 .exe的编辑器可执行文件的名称(例如git config --global core.editor sublime_text)

而已!

注意: Sublime Text 3是我在此示例中使用的编辑器。


以这种方式配置后,Sublime Text 3是否会打开多个实例或处理git需要关闭它来表示编辑结束的事实?
James World

1
我认为它将打开一个新窗口。您可以添加--wait开关(sublimetext.com/forum/viewtopic.php?f=3&t=3257
nikoskip
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.