我如何让git使用我选择的编辑器来编辑提交信息?

3300

如何全局配置git在提交信息时使用特定的编辑器(例如vim)?


261
如何让 Git 默认使用 Vim 编辑器来编写提交信息? - Michael Burr
4
相关(可能是重复的)问题:如何在Windows上设置编辑器以与Git一起使用? - Stevoisiak
5
EMACS (微笑) 有什么问题吗? - Shawn Eary
真正的问题是,地球上有哪个程序员使用'gedit'?为什么它是Ubuntu的默认编辑器?只是因为我知道如何设置ssh X-tunnel吗?我一直使用emacs,但是从shell中启动vim来输入2-20行的文本是有道理的。在emacs中,使用vc-mode。默认应该是vim,3300多票证明了这一点。 - undefined
34个回答

3

针对想在Windows子系统中使用neovim的用户:

git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"

这并不是一个万无一失的解决方案,因为它不能处理交互式变基(例如)。欢迎提出改进意见!


2

我来这里是寻找一次性解决方案的(在我的情况下,我通常使用vim,但这一次我想使用VS Code)只针对单个命令,其他人可能也想知道:

GIT_EDITOR='code -w' git rebase -i …

以下是与上下文相关的git/hub版本:

git version 2.24.2 (Apple Git-127)
hub version 2.14.1

1

针对Mac应用商店中的TextWrangler用户:

git config --global core.editor "open -n -W -a TextWrangler"

此外,请确保您的“TextWrangler>首选项>应用程序>当TextWrangler变为活动状态时:”设置为“什么也不做”
这在我使用的OS X 10.11.4和从Mac应用商店下载的TextWrangler 5.0.2上有效。
解释:
-n 意味着在新实例中打开。
-W 意味着等待应用程序退出,然后将编辑文件的内容用作提交消息。
-a TextWrangler 意味着使用TextWrangler应用程序打开文件。
有关更多详细信息,请参见Mac终端应用程序中的man open。

如果TextWrangler已经打开,您的解决方案将打开另一个具有相同文件集的实例。这似乎很危险。 - Klaas
我已经安装了TextWrangler命令行工具(http://www.barebones.com/support/textwrangler/cmd-line-tools.html),然后使用了`git config --global core.editor "edit -w"`。这将在当前实例中打开提交消息,只要您关闭此提交消息文档,提交就会继续进行。 - Klaas

1
在macOS Big Sur(11.0)的TextMate beta版中:环境变量选项都没有起作用。(设置了所有三个:GIT_EDITOR、VISUAL和EDITOR。)
最后在git中设置全局core.editor,这样就可以了:
git config --global core.editor "~/bin/mate -w"

1
对于Windows,Neovim:
# .gitconfig

[core]
    editor='C:/tools/neovim/Neovim/bin/nvim-qt.exe'

1

1
git config --global core.editor "code --wait"

要恢复对Git配置所做的更改并恢复默认编辑器,您可以使用以下命令:
git config --global --unset core.editor

0

针对IntelliJ用户

当我尝试进行git rebase时,出现了以下错误: “提示:等待您的编辑器关闭文件... code -n -w: code: command not found error: There was a problem with the editor 'code -n -w'。”

当我尝试将IntelliJ与Git关联起来时,同样出现了相同的错误: enter image description here

问题在于我没有将code命令添加到环境PATH变量中。而且我不想从终端使用Visual Studio Code。这就是为什么会提示“command not found”的原因。我通过从我的.gitconfig文件的核心部分中删除

editor = code -n -w

解决了这个问题。Git再次正常工作。


0

针对Textmate用户

这将在您想要编辑提交时打开Textmate编辑器。 需要安装Textmate命令行工具。

git config --global core.editor "mate -w"


@givanse 你是什么意思? - Matej
2
我猜他的意思是通过对vim答案的类比,这个问题很简单吧? - Rup
不是,但如果你使用的不是vim(例如textmate),那就可以。 - Matej
TextMate还有一个“等待”选项,所以对我来说,它是这样的:git config --global core.editor "/usr/local/bin/mate -w" - trungly

0

想要使用Kinesics文本编辑器的Windows用户

创建一个名为“k.sh”的文件,添加以下文本并放置在您的主目录(~)中:

winpty "C:\Program Files (x86)\Kinesics Text Editor\x64\k.exe" $1

在 git 提示符下键入:
git config --global core.editor ~/k.sh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接