212

如何在 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
4

11 回答 11

436
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 上的命令行上发出以下命令。它将从注册表中提取 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

于 2010-03-21T07:43:03.697 回答
78

2010-2011 年更新:

zumalifeguard解决方案(赞成)比原来的解决方案更简单,因为它不再需要 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 "$*"

确实有效。这些命令被解释为 shell 脚本,因此将任何 Windows 命令集包装在sh脚本中的想法。
(正如Franky 评论.sh的那样:“请记住以Unix 风格的行结尾保存您的文件,否则会收到神秘的错误消息!”)

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

注意 ' -multiInst' 选项,以确保每次来自 Git 的调用都有一个新的 notepad++ 实例。

另请注意,如果您在Cygwin上使用 Git (并且想使用 Cygwin 中的 Notepad++),那么scphantm在“在 Cygwin 中使用 Notepad++ for 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选项:

在 rebase 期间禁用选项卡没有好处,但会对记事本的一般可用性造成很大损害,因为-notab它成为默认设置,并且Settings>Preferences>General>TabBar> Hide>uncheck每次在 rebase 后启动记事本时都必须这样做。这是地狱。你推荐了地狱。

所以改用:

#!/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"'
    
于 2009-10-28T06:28:28.127 回答
7

这对我有用

git config --global core.editor C:/Progra~1/Notepad++/notepad++.exe
于 2009-11-22T22:22:11.233 回答
5
git config core.editor "\"C:\Program Files (x86)\Notepad++\notepad++.exe\""
于 2015-11-12T03:48:19.290 回答
5

Git for Windows v2.15.0(2017 年 10 月 30 日)开始,现在可以将Notepad++配置nano为Git 的默认编辑器,而不是.vim

在安装过程中,您将看到以下屏幕:

在此处输入图像描述

于 2018-01-14T01:47:40.943 回答
3

我使用带有 PATH 变量的方法。Notepad++ 的路径被添加到系统的 PATH 变量中,然后 core.editor 设置如下:

git config --global core.editor notepad++

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

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

(正如我在“ Git core.editorfor Windows ”中详述的那样)

在这里您可以找到一些在说明 Notepad++ Command Line Options时可能使用的选项。

于 2012-11-08T07:08:28.040 回答
1

2015 年更新

如果您为了简单起见将 Notepad++ 解压/安装到c:\utils\npp\并将 notepad++.exe 重命名为 npp.exe,那么您所要做的就是

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

没有包装脚本或其他诡计。PATH 中不需要有 Notepad++。

于 2015-04-02T07:58:42.413 回答
1

我正在使用 Windows 10 和记事本++,并且收到以下错误消息:

line 0: syntax error near unexpected token `(' git windows

所以我以这种方式进行设置:

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

它有效

于 2018-12-19T09:14:58.093 回答
0

这是 Cygwin 的解决方案:

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

  2. 如果路径为空,则传递空路径

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

然后我设置这些变量:

export EDITOR=notepad2.sh
export GIT_EDITOR='dash /usr/local/bin/notepad2.sh'
  1. EDITOR 允许脚本与 Git 一起工作

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

来源

于 2012-05-19T01:13:14.837 回答
0

按照这些说明,

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

  2. 然后在您的系统上安装gitpad 。请注意我上次检查的下载链接已损坏,因此请按照说明从此处下载。

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

于 2015-10-02T17:59:53.270 回答
0

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

cd ~
touch .bashrc

然后我在 Windows 资源管理器中找到了 .bashrc 文件,用 notepad++ 打开它并添加了

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

和希望在记事本++中打开的文件。

于 2016-10-24T10:50:48.710 回答