如何使用记事本++(或其他)与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
传递一个cygwin
path,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 ++。
按照这些说明,
-
首先确保你的系统上安装了notepad ++ ,并且它是打开.txt文件的默认程序。
-
然后在你的系统上安装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"}
-
如果没有path,不通过path
-
如果path为空,则传递空path
-
如果path不为空,则转换为Windows格式。
然后我设置这些variables:
export EDITOR=notepad2.sh export GIT_EDITOR='dash /usr/local/bin/notepad2.sh'
-
编辑器允许脚本使用Git
-
GIT_EDITOR允许脚本使用Hub命令
资源