2010-2011年更新:
zumalifeguard的解决方案(建议使用)比原始解决方案简单,因为它不再需要外壳包装脚本。
正如我在“ 如何在Windows上设置与Git一起使用的编辑器? ”中所解释的那样,我更喜欢使用包装器,因为它更容易尝试切换编辑器或更改一个编辑器的路径,而不必注册所做的更改有git config
一次。
但是,这只是我。
附加信息:以下解决方案适用于Cygwin,而zuamlifeguard的解决方案无效。
原始答案。
下列:
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脚本,因此可以将任何Windows命令集包装在sh
脚本中。
(正如Franky的 评论:“记住以.sh
Unix样式行结尾保存文件,否则会收到神秘的错误消息!”)
有关SO问题的更多详细信息如何在Windows上设置与Git一起使用的编辑器?
请注意' -multiInst
'选项,以确保从Git进行的每次调用都可以使用新的notepad ++实例。
还要注意,如果您在Cygwin上使用Git (并且要使用Cygwin的Notepad ++),那么scphantm在“ 在Cygwin内将Notepad ++用于Git ”中解释说,您必须意识到:
git
正在通过一条cygwin
路径,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
成为默认设置,因此对常规的记事本可用性造成了很大的损害,并且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
” 放置在带有空格的路径中(如“ c:\program files\...
”,),则有三个选择:
尝试用引号引起来(单引号或双引号),如下所示:
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%
环境变量的目录部分中。然后,您不必为脚本指定任何路径。
git config --global core.editor npp.sh
Steiny 在评论中报告必须要做的事:
git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'