如何使用记事本++(或其他)与msysgit?

msysgit如何使用Notepad ++(或除vim之外的其他编辑器)?

我尝试了以下所有的无济于事:

git config --global core.editor C:\Program Files\Notepad++\notepad++.exe git config --global core.editor "C:\Program Files\Notepad++\notepad++.exe" git config --global core.editor C:/Program Files/Notepad++/notepad++.exe git config --global core.editor C:\\Program Files\\Notepad++\\notepad++.exe 

2010-2011年更新:

zumalifeguard的解决scheme (upvoted)比原来的更简单,因为它不再需要shell封装脚本。

正如我在“ 如何设置编辑器以在Windows上使用Git ”中所解释的那样, 我更喜欢使用包装器,因为更容易尝试切换编辑器或更改一个编辑器的path,而无需注册所述更改再次使用git config
但是,这只是我。


其他信息 :以下解决scheme适用于Cygwin ,而zuamlifeguard的解决scheme则不适用。


原始答案。

下列:

 C:\prog\git>git config --global core.editor C:/prog/git/npp.sh C:/prog/git/npp.sh: #!/bin/sh "c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*" 

确实有效 这些命令被解释为shell脚本,因此可以将所有窗口命令集合包装在sh脚本中。
(正如Franky所 评论的那样 :“记得用Unix风格的行尾保存你的.sh文件,或者收到神秘的错误信息!”)

有关SO问题的更多详细信息如何设置编辑器以在Windows上使用Git?

请注意' -multiInst '选项,用于确保Git的每个调用都有一个记事本++的新实例。

还要注意的是,如果您在Cygwin上使用Git(并且想要使用Cygwin中的Notepad ++ ),那么scphantm在“ Cygwin中使用Notepad ++ for Git ”中解释说,您必须知道:

git传递一个cygwinpath, npp不知道该怎么做

那么在这种情况下的脚本将是:

 #!/bin/sh "C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")" 

多行可读性:

 #!/bin/sh "C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \ -nosession -noPlugin "$(cygpath -w "$*")" 

"$(cygpath -w "$*")"是这里的重要部分。

Val 评论 (然后删除),你不应该使用-notabbar选项:

-notab时禁用该选项卡并不好,但是对于一般的记事本可用性会造成很大的伤害,因为-notab成为默认设置,并且必须在每次在重新绑定之后开始记事本时Settings>Preferences>General>TabBar> Hide>uncheck 。 这是地狱。 你推荐了地狱。

所以用:

 #!/bin/sh "C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")" 

那是:

 #!/bin/sh "C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession \ -noPlugin "$(cygpath -w "$*")" 

如果你想把脚本“ npp.sh ”放在一个带有空格的path中(如' c:\program files\... '),你有三个select:

  • 要么尝试引用path(单引号或双引号),如下所示:

     git config --global core.editor 'C:/program files/git/npp.sh' 
  • 或者尝试使用短名称 (不是简单的):

     git config --global core.editor C:/progra~1/git/npp.sh 
  • 或者(我最喜欢的)将' npp.sh '放在%PATH%环境variables的目录部分。 那么您就不必为脚本指定任何path。

     git config --global core.editor npp.sh 
  • Steiny 在评论中要做的报道:

     git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"' 
 git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin" 

或者,对于64位Windows和Notepad ++的32位安装:

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

或者,可以在32位或64位Windows上的命令行上执行以下操作。 它会从registry中拉出notepad ++。exe的位置,并configurationgit自动使用它:

 FOR /F "usebackq tokens=2*" %A IN (`REG QUERY "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\notepad++.exe" /ve`) DO git config --global core.editor "'%B' -multiInst -notabbar -nosession -noPlugin" 

如果您希望从.BAT或.CMD文件中放置上述内容,则必须将%Areplace为%% A和%B,并将其replace为%% B

这对我有用

 git config --global core.editor C:/Progra~1/Notepad++/notepad++.exe 
 git config core.editor "\"C:\Program Files (x86)\Notepad++\notepad++.exe\"" 

我使用PATHvariables的方法。 记事本++的path被添加到系统的PATHvariables,然后core.editor设置如下:

 git config --global core.editor notepad++ 

另外,您可以为Notepad ++添加一些附加参数:

 git config --global core.editor "notepad++.exe -multiInst" 

(正如我在“ Git core.editor for Windows ”中详述的)

在这里,您可以find一些选项,说明Notepad ++ 命令行选项 。

更新2015年

如果您将Notepad ++解压缩到c:\utils\npp\ ,并将notepad ++。exe改名为npp.exe,那么您所要做的就是

 git config --global core.editor c:/utils/npp/npp.exe 

没有包装脚本或其他欺骗。 不需要在PATH中有Notepad ++。

按照这些说明,

  1. 首先确保你的系统上安装了notepad ++ ,并且它是打开.txt文件的默认程序。

  2. 然后在你的系统上安装gitpad 。 注意最后我检查下载链接是坏的,所以从这里下载,如解释 。

然后在提交时应该会看到您最喜欢的文本编辑器popup。

我使用了starikovs的解决scheme。 我开始了一个bash窗口,并给出了命令

 cd ~ touch .bashrc 

然后,我在Windows资源pipe理器中find.bashrc文件,用记事本++打开它,然后添加

 PATH=$PATH:"C:\Program Files (x86)\Notepad++" 

让bash知道在哪里可以findNotepad ++。 (在bash PATH中有Notepad ++本身就是一个有用的东西!)然后我粘贴了他的行

 git config --global core.editor "notepad++.exe -multiInst" 

进入bash窗口。 我为git仓库启动了一个新的bash窗口来testing这个命令

 git rebase -i HEAD~10 

并在希望的Notepad ++中打开该文件。

这是Cygwin的解决scheme:

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

  2. 如果path为空,则传递空path

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

然后我设置这些variables:

 export EDITOR=notepad2.sh export GIT_EDITOR='dash /usr/local/bin/notepad2.sh' 
  1. 编辑器允许脚本使用Git

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

资源