PHL*_*LAK 209 git configuration text-editor notepad++ 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
Run Code Online (Sandbox Code Playgroud)
zum*_*ard 431
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Run Code Online (Sandbox Code Playgroud)
或者,对于64位Windows和32位安装的Notepad ++:
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Run Code Online (Sandbox Code Playgroud)
或者,可以在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"
Run Code Online (Sandbox Code Playgroud)
如果您希望从.BAT或.CMD文件中放置上述内容,则必须将%A替换为%% A,将%B替换为%% B
Von*_*onC 75
2010-2011更新:
zumalifeguard的解决方案(upvoted)比原始解决方案简单,因为它不再需要shell包装器脚本.
正如我在" 如何设置编辑器以在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 "$*"
Run Code Online (Sandbox Code Playgroud)
确实有效.这些命令被解释为shell脚本,因此想要在sh脚本中包装任何Windows命令集.
(正如Franky 评论:"记得.sh用Unix风格的行结尾保存文件或收到神秘的错误消息!")
有关SO问题的更多详细信息如何设置编辑器以在Windows上使用Git?
注意' -multiInst'选项,用于确保来自Git的每个调用的记事本++的新实例.
另请注意,如果您在Cygwin上使用Git (并希望使用Cygwin的Notepad ++),那么scphantm在" 使用Noteg ++ for Cygwin中的Git "中解释说,您必须注意:
git传递它的cygwin路径,npp不知道该怎么做
所以这种情况下的脚本将是:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")"
Run Code Online (Sandbox Code Playgroud)
多行可读性:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \
-nosession -noPlugin "$(cygpath -w "$*")"
Run Code Online (Sandbox Code Playgroud)
在"$(cygpath -w "$*")"这里是重要的一部分.
Val 评论(然后删除)你不应该使用-notabbar选项:
在rebase期间禁用选项卡没有任何好处,但是对于一般的Notepad可用性
-notab会造成很大的伤害,因为它成为默认设置,并且必须Settings>Preferences>General>TabBar> Hide>uncheck每次在rebase之后启动记事本.这是地狱.你推荐了地狱.
所以请使用:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"
Run Code Online (Sandbox Code Playgroud)
那是:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession \
-noPlugin "$(cygpath -w "$*")"
Run Code Online (Sandbox Code Playgroud)
如果要将脚本' npp.sh'放在带空格的路径中(如' c:\program files\...'所示),则有三个选项:
尝试引用路径(单引号或双引号),如下所示:
git config --global core.editor 'C:/program files/git/npp.sh'
Run Code Online (Sandbox Code Playgroud)或者尝试使用短名称符号(不是万无一失):
git config --global core.editor C:/progra~1/git/npp.sh
Run Code Online (Sandbox Code Playgroud)或(我最喜欢的)放置npp.sh在%PATH%环境变量的目录部分中.那么您就不必为脚本指定任何路径.
git config --global core.editor npp.sh
Run Code Online (Sandbox Code Playgroud)git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'
Run Code Online (Sandbox Code Playgroud)这适合我
git config --global core.editor C:/Progra~1/Notepad++/notepad++.exe
Run Code Online (Sandbox Code Playgroud)
小智 5
git config core.editor "\"C:\Program Files (x86)\Notepad++\notepad++.exe\""
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
100307 次 |
| 最近记录: |