2988

我更喜欢在 Vim 中编写我的提交消息,但 git 在 Emacs 中打开它们。

如何配置 git 以始终​​使用 Vim?请注意,我想在全球范围内执行此操作,而不仅仅是针对单个项目。

4

29 回答 29

4065

如果您只想为 Git 设置编辑器请执行以下任一操作(您不需要两者):

  • core.editor在你的 Git 配置中设置:git config --global core.editor "vim"

或者

  • 设置GIT_EDITOR环境变量:export GIT_EDITOR=vim

如果要为 Git和其他程序设置编辑器,请设置标准化VISUALEDITOR环境变量*:

export VISUAL=vim
export EDITOR="$VISUAL"

注意:不一定需要同时设置两者,但某些程序可能不会使用更正确的VISUAL. 见VISUALEDITOR..


一些编辑器需要一个--wait标志,否则他们会打开一个空白页面。例如:

  • Sublime Text(如果设置正确;或使用可执行文件的完整路径代替subl):

    export VISUAL="subl --wait"

  • VS Code(添加shell 命令后):

    export VISUAL="code --wait"

于 2010-04-08T00:34:28.813 回答
743

复制粘贴这个:

git config --global core.editor "vim"

如果你想知道你在做什么。来自man git-commit

环境和配置变量

用于编辑提交日志消息的编辑器将从GIT_EDITOR环境变量、core.editor配置变量、VISUAL环境变量或EDITOR环境变量(按此顺序)中选择。

于 2010-04-08T00:31:32.700 回答
213

在 Ubuntu 和 Debian(感谢@MichielB)上,也可以通过运行以下命令更改默认编辑器:

sudo update-alternatives --config editor

这将提示以下内容:

There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
* 3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    10        manual mode

Press enter to keep the current choice[*], or type selection number: 
于 2012-10-27T15:35:01.637 回答
65

在 Windows 7 中,在添加“Sublime”编辑器时它仍然给我一个错误:

由于提交消息为空而中止提交。

Sublime 无法保持焦点。

为了解决这个问题,我在 c:/users/username/ 文件夹中打开了 .gitconfig 文件,并在单引号之外添加了以下带有 --wait 选项的行。

[core]
      editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait

希望它对面临与 Sublime 类似问题的人有所帮助。

于 2013-02-21T17:15:31.660 回答
60

在 Windows 7 中,将编辑器设置为 Notepad++

  • 打开任何文本编辑器。
  • 打开这个文件:C:\Users\YOUR_USERNAME\.gitconfig
  • 将此部分添加到底部:

对于 64 位 Notepad++ 使用:

[core]
    editor = 'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar

对于 32 位 Notepad++ 使用:

[core]
    editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar
  • 保存并关闭文件。
  • 当您使用 git 提交时,只需编写git commit并按Enter。它将弹出打开记事本++。
  • 在文件顶部写下你的提交信息,然后保存并关闭文件。完毕!
于 2013-03-07T00:08:27.593 回答
41

使 Visual Studio Code (vscode) 成为您的默认 git 编辑器

git config --global core.editor "code --wait"
于 2016-06-28T20:42:33.240 回答
25

如果您使用命令行与设计师合作,那么 Pico,并且不知道捷径;)

git config --global core.editor "pico"

或者

export VISUAL=pico
export EDITOR=pico
于 2012-06-27T13:56:25.160 回答
22

Atom 作为你的 git 编辑器

git config --global core.editor "atom --wait"

Atom 需要配置为从命令行运行才能使上述工作:

OS X:从 Atom 安装 shell 命令:菜单栏 > Atom > 安装 Shell 命令

Windows:无需任何操作 - atom 默认配置为从命令行运行

于 2015-07-13T17:43:30.557 回答
20

在 Mac OSX 10 中将 Sublime Text 2 设置为 Git 提交编辑器

运行此命令:

$ git config --global core.editor "/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"

要不就:

$ git config --global core.editor "subl -w"
于 2013-03-01T01:19:16.300 回答
19

要使 vim 在ubuntu 20:04上成为 git 的默认编辑器,请运行以下命令:

git config --global core.editor vim
于 2020-05-19T14:22:18.063 回答
15

Windows:将记事本设置为默认提交消息编辑器

git config --global core.editor notepad.exe

点击Ctrl+S保存您的提交信息。要放弃,只需关闭记事本窗口而不保存。

如果您点击保存的快捷方式,然后决定中止,请转到文件->另存为,然后在打开的对话框中,将“保存类型”更改为“所有文件 (*.*)”。您将看到一个名为“COMMIT_EDITMSG”的文件。删除它,然后关闭记事本窗口。

编辑:或者,更容易地,从打开的记事本窗口中删除所有内容并点击保存。(感谢mwfearnley的评论!)

我认为对于诸如提交消息记事本之类的小型记录来说最好,因为它很简单,有窗口,可以立即打开。当你有大量插件和东西时,即使是你的崇高也可能需要一两秒钟才能被激发。

于 2016-04-13T03:14:13.967 回答
15

这为遇到此问题的人提供了一个答案,他们可能想要链接除 vim 之外的编辑器。

当编辑器更新时, Github的链接资源可能会保持最新,即使关于 SO(包括这个)的答案不是。

将文本编辑器与 git 关联

Github 的帖子准确地显示了为各种编辑器在命令行中输入的内容,包括特定于每个编辑器的选项/标志,以使其与 git 一起工作。

记事本++:
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

崇高的文字:
git config --global core.editor "'c:/Program Files/sublime text 3/subl.exe' -w"

原子:
git config --global core.editor "atom --wait"

上面的命令假定您的编辑器已安装在 Windows 机器的默认目录中。

这些命令基本上将双引号之间的文本添加到.gitconfig您的主目录中。
在 Windows 机器上,home 可能是C:\Users\your-user-name,其中 your-user-name 是您的登录名。
在命令行中,您可以通过键入来访问此目录cd ~

例如,上面的命令将在该[core]部分下添加以下行,如下所示:
[core] editor = 'C:/Program Files/sublime text 3/subl.exe' -w

如果您有不同的编辑器,只需使用上述任一方法替换为您的编辑器的路径。(并希望最佳使用不需要标志。)

于 2018-12-23T06:31:05.280 回答
12

对于 emacs 用户

.emacs

(server-start)

shellrc

export EDITOR=emacsclient
于 2010-04-08T00:42:49.693 回答
10

Sublime Text 3 或 4 作为 Git 编辑器的最佳设置(Windows 和 Linux 说明):

要在 Windows 中遵循这些说明,请确保您已安装Git for Windows。在 Windows 中,我喜欢使用 Git Bash,让它感觉更像 Linux。

首先,我们要创建一个特殊的 Sublime Text 项目,以便我们可以在 Git 调用编辑器时指定我们想要设置的特殊项目设置,以便在 Git 中进行编辑时更容易。例如,在大多数项目中,我通常将我的标尺设置为 120 个字符,但对于 Git 提交消息,我希望它为 72 个字符,以便在您调用git loggit lg.


1. 使用我们想要用来编辑 Git 提交消息的设置创建一个 Sublime Text 项目

打开 Sublime Text 并转到菜单“文件”“新窗口”以创建一个新的匿名项目。转到菜单“项目”“将项目另存为...”并选择保存位置。在 Linux中,我将它保存在我的 Linux 主目录中,文件名为.gitconfig.sublime-project. 因此它的路径是:~/.gitconfig.sublime-project在 Windows中也将其保存在您的主目录中,例如:C:\Users\MY_USER_NAME\.gitconfig.sublime-project 现在转到菜单“项目”“编辑项目”以编辑项目设置。粘贴以下内容并保存设置。如果需要,对您的项目设置进行任何进一步的编辑。

{
    // For folder settings help see here: https://www.sublimetext.com/docs/3/projects.html

    "folders":
    [

    ],

    "settings":
    {

        // Disables horizontal scrolling if enabled.
        // May be set to true, false, or "auto", where it will be disabled for
        // source code, and otherwise enabled.
        "word_wrap": false,

        // Set to a value other than 0 to force wrapping at that column rather than the
        // window width
        "wrap_width": 0,

        // Columns in which to display vertical rulers
        "rulers": [72, 50], //72 is recommended by git for commit message content, and 50 for commit titles

        // The number of spaces a tab is considered equal to
        "tab_size": 4,

        // Set to true to insert spaces when tab is pressed
        "translate_tabs_to_spaces": true,
    },

    "build_systems":
    [

    ]

}

2.设置Git要使用的编辑器

现在我们需要通过编辑文件来设置 Git 使用的编辑器.gitconfig

对于 Linux:

您的用户副本将位于~/.gitconfig. 打开此文件并添加以下行。请务必使用您刚刚在上面创建的 Git 项目的正确路径名!我正在使用~/.gitconfig.sublime-project.

[core]
    editor = subl --project ~/.gitconfig.sublime-project --wait

--wait很重要,因为它会强制 Git 等到您关闭文件才能继续。当 Git 打开 Sublime Text 时,该--project行告诉 Sublime Text 你想要打开哪个项目很重要。

根据上面@digitaldreamer 的回答(https://stackoverflow.com/a/2596835/4561887),“subl可以用可执行文件的完整路径替换,但 [别名subl] 通常在 [Sublime is] 正确安装时可用。”

对于 Windows:

对于 Windows,首先阅读 Linux 说明以获取背景信息。现在我们将做一些几乎相同的事情。

(可选:创建一个subl别名以在 Git Bash 中使用):

打开一个文本编辑器(例如,Notepad、Notepad++、Sublime Text、Geany等),并在您的主目录中创建一个名为“.bash_profile”的文件。因此,它的路径将是:C:\Users\MY_USER_NAME\.bash_profile。将以下内容保存到其中:

alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe"

这将创建一个名为的 Git Bash 别名subl,我们现在可以在 Windows 版 Git Bash 中使用它来轻松打开 Sublime Text。此步骤不是必需的,但对于一般 Git Bash 使用很有用。例如,现在您可以subl .在 Git Bash 中调用 ,在当前目录中打开一个新的 Sublime Text 项目。

(强制的):

编辑.gitconfig在您的主目录中找到的文件:C:\Users\MY_USER_NAME\.gitconfig,向其中添加以下内容。请注意上面 Linux 指令的细微变化:

[core]
  editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
  • 请注意,您必须指定 Sublime Text 可执行文件的完整路径。注意斜线的方向!使用/NOT\分隔路径名中的文件夹!(感谢 VonC帮我看到这个)。
  • 我们subl为上面的 Git Bash 创建的别名在这里不起作用,因此您不能像在 Linux 示例中那样使用它,而是必须指定整个路径,如上所示。
  • 但是,该~符号在此处仍然可以访问您的 Windows 主目录。

2.5. (可选)将“Git”包安装到 Sublime Text 3 中。

这使您可以突出显示消息的语法git commit,以及访问其他 Git 命令,例如git blame(我在 Sublime Text 中经常使用)或git commit(我不在 Sublime Text 中使用,因为我更喜欢通用 Git 的命令行流动,正如我在这个答案下面的评论中提到的那样)。

要安装软件包:首先,确保安装了“Package Control”。接下来,按Ctrl+ Shift+ P(与工具 → 命令面板相同)并键入全部或部分“包控制:安装包”,然后按Enter。在出现的搜索框中,搜索“Git”包并点击Enter它,或点击它,自动安装它。

安装后,Ctrl++然后搜索“ Shiftgit P”将显示您现在可以在 Sublime Text 内部使用的 Git 命令,例如git blame.


3.使用它

现在git commit,例如,当您像往常一样从命令行调用时,Sublime Text 将打开.gitconfig.sublime-project我们上面创建的项目设置!当您键入一个段落时,您会注意到它超出了我们设置的标尺,因为软自动换行已关闭。要通过在每行末尾自动插入硬回车强制硬换行,请将光标放在要自动换行的长行上,然后按Alt+ Q它现在将以 72 个字符进行硬包装/硬折叠,这是我们在上面项目设置的“标尺”参数中设置的。

现在,使用+保存您的提交消息,并使用Ctrl+ +退出S(以完成您的git commit)。CtrlShiftW

完毕!

有关的:

  1. 在 Windows 上使用 Meld 的 Git 合并工具
  2. https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles
于 2018-01-11T17:04:04.123 回答
4

Mvim 作为你的 git 编辑器

像所有其他 GUI 应用程序一样,您必须使用等待标志启动 mvim。

git config --global core.editor "mvim --remote-wait"
于 2015-08-12T14:40:09.727 回答
4

有一个您可以使用的逗号列表,但对于 vs 代码使用这个

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

这是所有编辑器的链接:https ://git-scm.com/book/en/v2/Appendix-C%3A-Git-Commands-Setup-and-Config

于 2021-02-12T11:05:42.913 回答
3

对于想要将neovim与适用于 Linux 的 Windows 子系统一起使用的 Windows 用户:

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

不是一个万无一失的解决方案,因为它不处理交互式变基(例如)。非常欢迎改进!

于 2016-12-06T22:50:21.413 回答
3

对于 Mac OS X,使用TextEdit或自然环境编辑器编辑文本:

git config --global core.editor "open -W -n"
于 2019-09-10T10:02:32.997 回答
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
于 2020-05-15T15:59:47.910 回答
1

试试看EDITOR=vim git commit

或者您可以export EDITOR=vim在 bashrc 中将 EDITOR 设置为 vim。

于 2013-07-01T07:21:10.333 回答
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 应用程序打开文件。

有关更多详细信息,请参阅man open您的 Mac 终端应用程序。

于 2016-04-15T12:57:06.277 回答
1

使用时,git-review我必须修改sequence.editorvalue 才能进行交互式 rebase ( git rebase -i -p):

git config --global sequence.editor "gvim"  # or whatever your prefer

gvim要求:apt install vim-gtk

参考

于 2019-01-26T14:34:39.527 回答
1

在 TextMate 的 macOS Big Sur (11.0) beta 上:环境变量选项均无效。(设置所有三个:GIT_EDITOR、VISUAL 和 EDITOR。)

最后在 git 中设置全局 core.editor ,并且有效:
git config --global core.editor "~/bin/mate -w"

于 2020-08-14T17:34:13.040 回答
1

对于 Windows,Neovim:

# .gitconfig

[core]
    editor='C:/tools/neovim/Neovim/bin/nvim-qt.exe'
于 2020-10-29T03:22:16.623 回答
0

对于 IntelliJ 用户

当我尝试 git rebase 时,我收到以下错误:'提示:等待您的编辑器关闭文件...代码 -n -w:代码:找不到命令错误:编辑器有问题'代码-n -w'。

当我尝试将 IntelliJ 与 Git 关联时,出现了同样的错误: 在此处输入图像描述

问题是我没有在我的环境 PATH 变量中添加命令代码。而且我不想从我的终端使用 Visual Studio Code。所以这就是为什么它提示“找不到命令”。我通过删除解决了这个问题

编辑器 = 代码 -n -w

从我的 .gitconfig 文件的核心部分。Git再次正常工作。

于 2020-04-03T19:37:22.323 回答
0

对于 EmEditor 用户

要将 EmEditor 设置为 Git 的默认文本编辑器,请打开 Git Bash,然后键入:

git config --global core.editor "emeditor.exe -sp"

需要 EmEditor v19.9.2 或更高版本。

于 2020-06-23T15:41:48.987 回答
0

对于 MAC,BBEdit:

首先,打开 BBEdit,单击 BBEdit 徽标,然后选择安装命令行工具。

然后从命令行,

git config --global core.editor "BBEdit -w"
于 2020-12-03T00:50:05.313 回答
-1

对于 Textmate 用户

当您想要编辑提交时,这会打开 Textmate 编辑器。需要安装 textmate 命令行工具。

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

于 2013-10-29T12:15:32.467 回答
-1

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

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

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

在 git 提示符下输入:

git config --global core.editor ~/k.sh
于 2016-06-01T14:17:58.813 回答