[英]How can I set up an editor to work with Git on Windows?
我正在Windows 上试用 Git 。 我到了尝试“git commit”的地步,但出现了这个错误:
终端是哑的,但没有定义 VISUAL 或 EDITOR。 请使用 -m 或 -F 选项提供消息。
所以我发现我需要一个名为 EDITOR 的环境变量。 没问题。 我将其设置为指向记事本。 这几乎奏效了。 默认提交消息在记事本中打开。 但记事本不支持裸换行。 我出去拿了Notepad++ ,但我不知道如何将 Notepad++ 设置为%EDITOR%
,以便它可以按预期与 Git 一起使用。
我没有嫁给记事本++。 在这一点上,我不介意我使用什么编辑器。 我只想能够在编辑器而不是命令行(使用-m
)中输入提交消息。
那些在 Windows 上使用 Git 的人:您使用什么工具来编辑您的提交消息,您需要做什么才能使其工作?
2015 年 9 月更新(6 年后)
git-for-Windows (2.5.3)的最新版本现在包括:
通过配置
git config core.editor notepad
,用户现在可以使用notepad.exe
作为他们的默认编辑器。
配置git config format.commitMessageColumns 72
将由记事本包装器拾取并在用户编辑提交消息后换行。
请参阅Johannes Schindelin ( dscho
) 的commit 69b301b 。
并且 Git 2.16(2018 年第一季度)将显示一条消息,告诉用户它在生成编辑器时正在等待用户完成编辑,以防编辑器打开到隐藏窗口或某个不明显的地方并且用户迷路了。
见提交abfb04d (2017年12月7日),并提交a64f213 (2017年11月29日)由拉尔斯·施奈德( larsxschneider
) 。
帮助者: Junio C gitster
( gitster
) 。
(由Junio C gitster
合并-- gitster
-- in commit 0c69a13 ,2017 年 12 月 19 日)
launch_editor()
:表示 Git 等待用户输入当图形
GIT_EDITOR
由打开并等待用户输入的 Git 命令(例如“git rebase -i
”)产生时,编辑器窗口可能会被其他窗口遮挡。
用户可能会一直盯着原始的 Git 终端窗口,甚至没有意识到他/她需要在 Git 继续之前与另一个窗口进行交互。 对于这个用户来说,Git 似乎挂了。如果终端支持擦除最后一行,则在原始终端打印一条 Git 正在等待编辑器输入的消息,并在编辑器返回时将其删除
原答案
我刚刚用 git 版本 1.6.2.msysgit.0.186.gf7512 和 Notepad++5.3.1 对其进行了测试
我更喜欢不必设置 EDITOR 变量,所以我尝试了:
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"
这总是给出:
C:\prog\git>git config --global --edit
"c:\Program Files\Notepad++\notepad++.exe" %*: c:\Program Files\Notepad++\notepad++.exe: command not found
error: There was a problem with the editor '"c:\Program Files\Notepad++\notepad++.exe" %*'.
如果我定义一个 npp.bat 包括:
"c:\Program Files\Notepad++\notepad++.exe" %*
我输入:
C:\prog\git>git config --global core.editor C:\prog\git\npp.bat
它只适用于 DOS 会话,而不适用于 git shell 。
(与 core.editor 配置机制不同,带有“ start /WAIT...
”的脚本将不起作用,而只能打开一个新的 DOS 窗口)
Bennett 的回答提到了避免添加脚本的可能性,而是在简单的引号之间直接引用程序本身。 注意斜线的方向! 使用/
NOT \\
分隔路径名中的文件夹!
git config --global core.editor \
"'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
或者,如果您使用的是 64 位系统:
git config --global core.editor \
"'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
但我更喜欢使用脚本(见下文):这样我就可以使用不同的路径或不同的选项,而无需再次注册git config
。
实际的解决方案(使用脚本)是要意识到:
您在配置文件中所指的实际上是一个 shell ( /bin/sh
) 脚本,而不是 DOS 脚本。
那么有效的是:
C:\prog\git>git config --global core.editor C:/prog/git/npp.bat
使用C:/prog/git/npp.bat
:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"
要么
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"
通过该设置,我可以从 DOS 或 Git Shell 执行“ git config --global --edit
”,或者我可以从 DOS 或 Git Shell 执行“ git rebase -i ...
”。
Bot 命令将触发 notepad++ 的新实例(因此使用-multiInst
' 选项),并在继续之前等待该实例关闭。
请注意,我只使用“/”,而不是“ \\
”。 我使用选项 2 安装了 msysgit。 (将git\\bin
目录添加到PATH
环境变量,但没有覆盖一些内置的 Windows 工具)
notepad++ 包装器称为 .bat 的事实并不重要。
最好将其命名为“npp.sh”并将其放在[git]\\cmd
目录中(或在您的 PATH 环境变量引用的任何目录中)。
也可以看看:
lightfire228 在评论中补充道:
对于任何遇到 N++ 只是打开一个空白文件而 git 不接受您的提交消息的问题的人,请参阅“由于空消息而中止提交”:将您的
.bat
或.sh
文件更改为:
"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>.
这将告诉记事本++打开临时提交文件,而不是一个空白的新文件。
基于Darren 的回答,要使用 Notepad++,您可以简单地执行此操作(全部在一行上):
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
显然, C:/Program Files/Notepad++/notepad++.exe
部分应该是系统上 Notepad++ 可执行文件的路径。 例如,它可能是C:/Program Files (x86)/Notepad++/notepad++.exe
。
它对我来说就像一种魅力。
文章如何将 Notepad++ 设置为提交的默认 Git 编辑器而不是 Vim解释了命令的参数。
无论如何,我一直在玩这个,发现以下对我来说很好用:
git config --global core.editor "'C:/Program Files/TextPad 5/TextPad.exe' -m"
我认为 CMD 不喜欢单引号,因此您必须使用双引号“指定嵌入的空格字符串参数”。
另一方面,Cygwin(我认为它是 Git 的 Bash 的底层平台)同时喜欢'
和"
;你可以指定一个类似 CMD 的路径,使用/
而不是\\
,只要字符串被引用,即在这种情况下,使用单引号。
-m
覆盖/指示使用多个编辑器,并且不需要在末尾添加%*
。
编辑:更新到 Vim 7.3 后,我得出的结论是,最简洁、最简单的方法是:
将 Vim 的主文件夹添加到您的路径(右键单击我的电脑→属性→高级→环境变量)
运行这个:
git config --global core.editor "gvim --nofork '%*'"
如果你这样做,那么我很确定它也适用于 Cygwin。
原答案:
即使有几个与 Vim 相关的答案,我也无法在 Windows 下使用 gVim(同时不使用批处理文件或 %EDITOR% 或 Cygwin)。
我最终得出的结论既漂亮又干净,并借鉴了这里的一些解决方案:
git config --global core.editor \
"'C:/Program Files/Vim/vim72/gvim.exe' --nofork '%*'"
我花了一段时间的一个问题是这些不是 Windows 风格的反斜杠。 它们是正常的正斜杠。
Notepad++ 工作得很好,尽管我选择坚持使用 Notepad、-m,甚至有时使用内置的“编辑”。
您在使用 Notepad++ 时遇到的问题与 Git 如何启动编辑器可执行文件有关。 我对此的解决方案是将环境变量EDITOR
设置为批处理文件,而不是实际的编辑器可执行文件,它执行以下操作:
start /WAIT "E:\PortableApps\Notepad++Portable\Notepad++Portable.exe" %*
/WAIT
告诉命令行会话暂停,直到应用程序退出,这样你就可以编辑到你想要的内容,而 Git 会高兴地等待你。 %* 将批处理文件的所有参数传递给 Notepad++。
C:\src> echo %EDITOR%
C:\tools\runeditor.bat
写字板!
我很高兴使用 Vim,但由于我试图将 Git 介绍给公司,我想要一些我们都拥有的东西,并且发现写字板似乎工作正常(即 Git 确实等到您完成编辑并关闭窗户)。
git config core.editor '"C:\Program Files\Windows NT\Accessories\wordpad.exe"'
那是在 msysgit 上使用 Git Bash; 我还没有从 Windows 命令提示符尝试过(如果这有什么不同的话)。
我也在 Windows 上使用 Cygwin,但使用 gVim(与基于终端的Vim相反)。
为了使这项工作,我做了以下工作:
git_editor.bat
),其中包含以下内容: "C:/Program Files/Vim/vim72/gvim.exe" --nofork "%*"
git_editor.bat
放在我的PATH
。GIT_EDITOR=git_editor.bat
完成此操作后, git commit
等将正确调用 gVim 可执行文件。
注意 1: gVim 的--nofork
选项确保它阻塞直到提交消息被写入。
注意 2:如果路径中有空格,则 gVim 路径周围的引号是必需的。
注意 3: 需要在 "%*" 周围加上引号,以防 Git 传递带空格的文件路径。
感谢 Stack Overflow 社区 ... 和一些研究,我能够让我最喜欢的编辑器EditPad Pro作为核心编辑器使用 msysgit 1.7.5.GIT 和 TortoiseGit v1.7.3.0 在 Windows XP SP3 上工作。 ..
按照上面的建议,我为代码编辑器添加了 Bash 脚本的路径...
git config --global core.editor c:/msysgit/cmd/epp.sh
然而,在上述解决方案的几次失败尝试之后......我终于能够让它工作。 根据 EditPad Pro 的文档,添加“/newinstance”标志将允许 shell 等待编辑器输入...
' /newinstance ' 标志在我的案例中是关键......
#!/bin/sh
"C:/Program Files/JGsoft/EditPadPro6/EditPadPro.exe" //newinstance "$*"
编辑 c:\\Users\\YourUser 文件夹中的 .gitconfig 文件并添加:
[core]
editor = 'C:\\Program files\\path\\to\\editor.exe'
这是更大问题的一个症状。 值得注意的是,您有一些设置TERM=dumb
。 其他不能正常工作的东西是less
命令,它表示您没有功能齐全的终端。
这似乎最常见的原因是将 TERM 设置为全局 Windows 环境变量中的某些内容。 对我来说,当我安装Strawberry Perl时出现了这个问题,一些关于这个问题的信息是关于这个问题的msysgit 错误以及几个解决方案。
第一个解决方案是通过添加以下内容在您的 ~/.bashrc 中修复它:
export TERM=msys
您可以从 Git Bash 提示符执行此操作,如下所示:
echo "export TERM=msys" >> ~/.bashrc
另一个解决方案,最终是我所做的,因为我不关心 Strawberry Perl 将TERM=dumb
添加到我的环境设置的原因,是按照对 msysgit 错误报告的评论中的指示去删除TERM=dumb
。
控制面板/系统/高级/环境变量...(或类似的,取决于您的 Windows 版本)是在 Windows 上设置粘性环境变量的地方。 默认情况下,未设置 TERM。 如果在那里设置了 TERM,那么您(或您安装的程序之一 - 例如 Strawberry Perl)已经设置了它。 删除该设置,你应该没问题。
类似地,如果您使用 Strawberry Perl 并关心CPAN客户端或类似的东西,您可以单独保留TERM=dumb
并在您的 ~/.bashrc 文件中使用unset TERM
,这将具有与上述设置显式术语类似的效果。
当然,所有其他解决方案都是正确的,因为您可以使用git config --global core.editor $MYFAVORITEEDITOR
来确保 Git 在需要为您启动一个编辑器时使用您最喜欢的编辑器。
Vim/gVim对我来说效果很好。
>echo %EDITOR%
c:\Vim\Vim71\vim.exe
我在多个平台上使用 Git,而且我喜欢在所有平台上使用相同的 Git 设置。 (事实上,我所有的配置文件都在 Git 的发布控制之下,并在每台机器上放置了一个 Git 存储库克隆。)我想出的解决方案是这样的:
我将我的编辑器设置为giteditor
git config --global core.editor giteditor
然后我创建了一个名为giteditor的符号链接,它在我的PATH 中。 (我有一个个人bin目录,但在PATH 中的任何地方都有效。)该链接指向我当前选择的编辑器。 在不同的机器和不同的平台上,我使用不同的编辑器,所以这意味着我不必更改我的通用 Git 配置( .gitconfig ),只需更改 giteditor指向的链接。
符号链接由我所知道的每个操作系统处理,尽管它们可能使用不同的命令。 对于 Linux,您使用ln -s 。 对于 Windows,您使用cmd内置mklink 。 它们有不同的语法(你应该查一下),但它们的工作方式都是一样的,真的。
我让 PortableGit 1.6 工作正常,但在升级到 PortableGit 1.7 Windows 版本后,我遇到了问题。 一些 Git 命令可以很好地打开 Notepad++.exe,但有些则不能,尤其是Git rebase 的行为不同。
问题是一些命令运行 Windows cmd 进程,而一些命令使用 Unix cmd 进程。 我想为 Notepad++ 编辑器提供启动属性,所以我需要一个自定义脚本。 我的解决办法是这样。
创建脚本以运行适当的文本编辑器。 该脚本看起来很奇怪,但它同时处理 Windows 和 Unix 变体。
c:/PortableGit/cmd/git-editor.bat
#!/bin/sh # Open a new instance function doUnix() { "c:\\program files\\notepad++\\notepad++.exe" -multiInst -nosession -notabbar $* exit } doUnix $* :WINCALL "c:\\program files\\notepad++\\notepad++.exe" -multiInst -nosession -notabbar %*
设置全局 core.editor 变量
脚本已保存到 git/cmd 文件夹,因此它已经在 gitconsole 路径中。 这是强制性的,因为完整路径可能无法正常工作。
git config --global core.editor "git-editor.bat"
现在我可以运行git commit -a和git rebase -i master命令。 如果您在 Git Windows 工具中遇到问题,请尝试一下。
我需要执行以下两项操作才能让 Git 在 Windows 中启动 Notepad++:
将以下内容添加到 .gitconfig:
editor = 'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin
修改快捷方式以启动 Git Bash shell 以管理员身份运行,然后使用它来启动 Git Bash shell。 我猜测上下文菜单条目“Git Bash here”没有以所需的权限启动 Notepad++。
做完以上两件事后,它起作用了。
这是我使用Geany作为 Git 编辑器的设置:
git config --global core.editor C:/path/to/geany.bat
在geany.bat
包含以下内容:
#!/bin/sh
"C:\Program Files\Geany\bin\Geany.exe" --new-instance "$*"
它适用于 DOS 控制台和 msysgit。
我很难让 Git 与WordPad 、 Komodo Edit以及我提供的几乎所有其他编辑器合作。 大多数打开进行编辑,但 Git 显然不会等待保存/关闭发生。
作为拐杖,我一直在做即
git commit -m "Fixed the LoadAll method"
保持事物的运转。 它往往使我的提交消息比它们应该的要短一些,但显然在 Windows 版本的 Git 上还有一些工作要做。
GitGUI 也没有那么糟糕。 这需要一点定位,但在那之后,它工作得相当好。
我更喜欢使用 Emacs。 设置它可能有点棘手。
c:\\emacs
之类的地方。c:\\emacs\\bin\\addpm.exe
。 如果您使用的是 Windows Vista 或更高版本,则需要右键单击并“以管理员身份运行”。 这会将可执行文件放在您的路径中。.emacs
文件中的某处添加(server-start)
。 有关将.emacs
文件放在哪里的建议,请参阅Emacs Windows 常见问题解答。git config --global core.editor emacsclientw
Git 现在将在现有 Emacs 进程中打开文件。 您必须从c:\\emacs\\bin\\runemacs.exe
手动运行该现有进程。
如果路径中有空格,Git 似乎找不到编辑器。 因此,您必须将帕特里克回答中提到的批处理文件放入非空白路径。
我刚刚遇到了同样的问题,并找到了不同的解决方案。 我得到
error: There was a problem with the editor 'ec'
我的路径上有VISUAL=ec
和一个名为ec.bat
的批处理文件,其中包含一行:
c:\emacs\emacs-23.1\bin\emacsclient.exe %*
这让我可以使用ec <filename>
从命令行编辑文件,并且设置VISUAL
意味着大多数 unixy 程序也可以选择它。 不过,Git 似乎以与我的其他命令不同的方式搜索路径 - 当我在Process Monitor 中查看git commit
,我看到它在路径上的每个文件夹中查找ec
和ec.exe
,但没有查找ec.bat
。 我添加了另一个环境变量( GIT_EDITOR=ec.bat
),一切都很好。
我正在使用 GitHub for Windows,这是一个不错的视觉选项。 但我也更喜欢命令行,所以当我在 Git shell 中打开存储库时,为了使它工作,我只需设置以下内容:
git config --global core.editor vim
这很好用。
这适用于 PowerShell 和cmder 1.2(与 PowerShell 一起使用时)。 在文件~/.gitconfig
:
[core]
editor = 'c:/program files/sublime text 3/subl.exe' -w
我在这里找到了一个非常简单的解决方案 - 尽管您必须复制作者提供的“subl”文件的路径中可能存在错误。
我正在运行 Windows 7 x64,我必须将“subl”文件放在我的/Git/cmd/
文件夹中才能使其工作。
不过,它就像一种魅力。
我右键单击桌面上的 Atom 图标,然后单击属性。
复制“开始于”位置路径
使用 Windows 资源管理器查看那里并找到“atom.exe”。
我在 Git Bash 中输入:
git config --global core.editor C:/Users/YOURNAMEUSER/AppData/Local/atom/app-1.7.4/atom.exe"
注意:我将所有\\
更改为/
。 我在我的主目录中创建了一个 .bashrc 并使用/
来设置我的主目录并且它起作用了,所以我认为/
将是要走的路。
我设法通过使用引号和/
设置 EDITOR 变量来使环境版本正常工作:
EDITOR="c:/Program Files (x86)/Notepad++/notepad++.exe"
添加 sublime git config --global core.editor "'C:\\Program Files\\Sublime Text 3\\sublime_text.exe'"
我使用GIT_EDITOR
变量和notepad2
作为编辑器解决了类似的问题。
解决方案一:将环境变量GIT_EDITOR
设置为C:/tools/notepad2.exe
。 这很好用,但 git 会抱怨提交消息是否包含非 ASCII 字符。
解决方案 2:将GIT_EDITOR
设置为C:/tools/notepad2.exe //utf8
。 注意程序开关前面的双斜线。 顺便说一句: -utf8
也可以。
假设您想将VsCode配置为您的编辑器。 请执行下列操作:
.gitconfig
文件中:
.gitconfig
文件的默认位置是C:\Users\USER_NAME\.gitconfig
[core]
editor = code -w -n
[diff]
tool = vscode
[difftool "vscode"]
cmd = code -w -n --diff $LOCAL $REMOTE
[merge]
tool = vscode
[mergetool "vscode"]
cmd = code -w -n $MERGED
笔记:
-w
是强制性的,告诉git
等待vscode加载。-n
是可选的,它告诉git
在新窗口中打开vscode 。
您需要将单词code
替换为 VsCode 的“.exe”路径。
例如:
[core]
editor = "'C:/Users/Tal/AppData/Local/Programs/Microsoft VS Code/Code.exe'" -w -n
[diff]
tool = vscode
[difftool "vscode"]
cmd = "'C:/Users/Tal/AppData/Local/Programs/Microsoft VS Code/Code.exe'" -w -n --diff $LOCAL $REMOTE
[merge]
tool = vscode
[mergetool "vscode"]
cmd = "'C:/Users/Tal/AppData/Local/Programs/Microsoft VS Code/Code.exe'" -w -n $MERGED
笔记:
- 您需要用单引号
''
将路径括起来。- 路径中的斜杠应该是正斜杠
/
。
或者另一个例子:
[core]
editor = \"C:\\Users\\Tal\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\" -w -n
[diff]
tool = vscode
[difftool "vscode"]
cmd = \"C:\\Users\\Tal\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\" -w -n --diff $LOCAL $REMOTE
[merge]
tool = vscode
[mergetool "vscode"]
cmd = \"C:\\Users\\Tal\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe\" -w -n $MERGED
VsCode 现在支持“3 路合并”! 更新在1.69.0和1.70.0版本中完成。 所以现在你可以启用 VsCode “mergetool” 来查看 3 路合并。
为此,您需要更新该行:
[mergetool "vscode"]
cmd = code -w -n $MERGED
使用新行:
[mergetool "vscode"]
cmd = code -w -n --merge $REMOTE $LOCAL $BASE $MERGED
我正在Windows上试用Git 。 我到了尝试“ git commit”的地步,并且出现了这个错误:
终端很笨,但没有定义VISUAL或EDITOR。 请使用-m或-F选项提供消息。
所以我发现我需要一个名为EDITOR的环境变量。 没问题。 我将其设置为指向记事本。 几乎成功了。 默认的提交消息在记事本中打开。 但是记事本不支持裸线换行。 我出去了,得到了Notepad ++ ,但是我不知道如何将Notepad ++设置为%EDITOR%
,使其可以按预期与Git一起使用。
我没有嫁给Notepad ++。 在这一点上,我不介意我使用什么编辑器。 我只希望能够在编辑器中而不是在命令行(带有-m
)中键入提交消息。
那些在Windows上使用Git的人:您使用什么工具来编辑提交消息,并且需要做什么才能使其生效?
我正在Windows上试用Git 。 我到了尝试“ git commit”的地步,并且出现了这个错误:
终端很笨,但没有定义VISUAL或EDITOR。 请使用-m或-F选项提供消息。
所以我发现我需要一个名为EDITOR的环境变量。 没问题。 我将其设置为指向记事本。 几乎成功了。 默认的提交消息在记事本中打开。 但是记事本不支持裸线换行。 我出去了,得到了Notepad ++ ,但是我不知道如何以这种方式将Notepad ++设置为%EDITOR%
,使其可以按预期与Git一起使用。
我没有嫁给Notepad ++。 在这一点上,我不介意使用什么编辑器。 我只希望能够在编辑器中而不是在命令行(带有-m
)中键入提交消息。
那些在Windows上使用Git的人:您使用什么工具来编辑提交消息,并且需要做什么才能使其生效?
这是 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 命令
那些在 Windows 上使用 Git 的人:您使用什么工具来编辑您的提交消息,您需要做什么才能使其工作?
我发现在 Windows和Linux 中,作为git 编辑器和通用代码编辑器最有用的工具是Sublime Text 3 。 它工作得非常好,但需要一些设置才能使其恰到好处,所以我在这里完整地记录了这一点:
关于我的主编辑器的旁注:对于大型项目,我使用 Eclipse 作为我的主要编辑器,当我需要使用它的高级功能(如多光标模式、垂直/列)时,Sublime Text 3 作为我的 git 编辑器和附加文件编辑器选择模式等。对于中小型项目,我只使用 Sublime Text 3。 有关 Eclipse 的设置说明,请在此处查看我的 PDF 文档。
当使用远程安装的homedrive(samba共享,nfs,...)时,你的~/.git
文件夹是共享的所有系统,这可能导致几个问题。 因此,我更喜欢使用脚本来确定正确系统的正确编辑器:
#!/usr/bin/perl
# Detect which system I'm on and choose the right editor
$unamea = `uname -a`;
if($unamea =~ /mingw/i){
if($unamea =~ /devsystem/i){#Check hostname
exec('C:\Program Files (x86)\Notepad++\notepad++.exe', '-multiInst', '-nosession', @ARGV);
}
if($unamea =~ /testsystem/i){
exec('C:\Program Files\Notepad++\notepad++.exe', '-multiInst', '-nosession', @ARGV);
}
}
$MCEDIT=`which mcedit`;
if($MCEDIT =~ /mcedit/){
exec($MCEDIT, @ARGV);
}
$NANO=`which nano`;
if($NANO =~ /nano/){
exec($NANO, @ARGV);
}
die "You don't have a suitable editor!\n";
有人可能会考虑使用普通的shell脚本,但我使用的是perl,因为perl随msysgit一起提供,而你的unixoid系统也会提供一个。 将脚本放在/home/username/bin
,该脚本应添加到.bashrc
或.profile
PATH
中。 一旦添加了git config --global core.editor giteditor.pl
,无论你身在何处,你都拥有正确的编辑器。
我只是直接使用TortoiseGit 。 它与我的PuTTY公钥完美集成。
它有一个完美的提交消息编辑器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.