如何在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
答案 0 :(得分:430)
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
或者,对于64位Windows和32位安装的Notepad ++:
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
或者,可以在32位或64位Windows上的命令行上发出以下命令。它将从注册表中提取notepad ++。exe的位置,并配置git以自动使用它:
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文件中放置上述内容,则必须将%A替换为%% A,将%B替换为%% B
答案 1 :(得分:75)
2010-2011更新:
zumalifeguard的solution(upvoted)比原始的更简单,因为它不再需要shell包装器脚本。
正如我在“How can I set up an editor to work with Git on Windows?”中解释的那样,我更喜欢包装器,因为更容易尝试切换编辑器或更改一个编辑器的路径,而无需使用{注册所述更改{1}}再次。
但那只是我。
其他信息:以下解决方案适用于 Cygwin ,而zuamlifeguard的解决方案则不适用。
原始答案。
以下内容:
git config
确实有效。这些命令被解释为shell脚本,因此想要在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 "$*"
脚本中包装任何Windows命令集
(作为Franky comments:“请记住使用Unix样式的行结尾保存您的sh
文件或接收神秘的错误消息!”)
有关SO问题的更多详情How can I set up an editor to work with Git on Windows?
注意'.sh
'选项,用于确保来自Git的每次调用都有一个新的记事本++实例。
另请注意,如果您在 Cygwin 上使用Git(并希望use Notepad++ from Cygwin),则scphantm在“using Notepad++ for Git inside Cygwin”中说明您必须请注意:
-multiInst
正在传递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 "$*")"
是此处的重要部分。
Val commented(然后删除)您不应使用"$(cygpath -w "$*")"
选项:
在rebase期间禁用选项卡是没有用的,但是对于一般的Notepad可用性会造成很大的伤害,因为
-notabbar
成为默认设置,并且每次在rebase之后启动记事本时都必须-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\...
或尝试shortname notation(不是万无一失):
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%
Steiny报告in the comments必须执行以下操作:
git config --global core.editor npp.sh
答案 2 :(得分:6)
这对我有用
git config --global core.editor C:/Progra~1/Notepad++/notepad++.exe
答案 3 :(得分:5)
git config core.editor "\"C:\Program Files (x86)\Notepad++\notepad++.exe\""
答案 4 :(得分:5)
从Git for Windows v2.15.0 (October 30th 2017)开始,现在可以将configure nano
或Notepad++作为Git的默认编辑instead of vim
。
在安装过程中,您将看到以下屏幕:
答案 5 :(得分:3)
我使用PATH变量的方法。将Notepad ++的路径添加到系统的PATH变量中,然后将core.editor设置如下:
git config --global core.editor notepad++
另外,您可以为Notepad ++添加一些其他参数:
git config --global core.editor "notepad++.exe -multiInst"
(正如我在“Git core.editor
for Windows”中所详述的)
在这里,您可以找到在说明Notepad ++ Command Line Options时可能会使用的一些选项。
答案 6 :(得分:1)
更新2015
如果您将Notepad ++解压缩/安装到c:\utils\npp\
并将notepad ++。exe重命名为npp.exe以简化,那么您只需要做的就是
git config --global core.editor c:/utils/npp/npp.exe
没有包装脚本或其他技巧。无需在PATH中使用Notepad ++。
答案 7 :(得分:1)
我正在使用Windows 10和notepad ++,并且收到此错误消息:
line 0: syntax error near unexpected token `(' git windows
所以我以这种方式进行设置:
git config --global core.editor 'C:/Program\ Files\ \(x86\)/Notepad++/notepad++.exe'
它有效
答案 8 :(得分:0)
以下是Cygwin的解决方案:
#!/bin/dash -e
if [ "$1" ]
then k=$(cygpath -w "$1")
elif [ "$#" != 0 ]
then k=
fi
Notepad2 ${k+"$k"}
如果没有路径,则不传递路径
如果路径为空,请传递空路径
如果路径不为空,请转换为Windows格式。
然后我设置这些变量:
export EDITOR=notepad2.sh
export GIT_EDITOR='dash /usr/local/bin/notepad2.sh'
EDITOR允许脚本使用Git
GIT_EDITOR允许脚本使用Hub commands
答案 9 :(得分:0)
按照这些说明进行操作
答案 10 :(得分:0)
我使用了starikovs'解。我从一个bash窗口开始并发出了命令
cd ~
touch .bashrc
然后我在Windows资源管理器中找到.bashrc文件,用记事本++打开它并添加
PATH=$PATH:"C:\Program Files (x86)\Notepad++"
这样bash知道在哪里找到Notepad ++。 (在bash PATH中使用Notepad ++本身就很有用!)然后我粘贴了他的行
git config --global core.editor "notepad++.exe -multiInst"
进入bash窗口。我为git存储库启动了一个新的bash窗口,用命令
测试git rebase -i HEAD~10
并按照希望在Notepad ++中打开文件。