我如何让Git使用我选择的编辑器进行提交?

我宁愿在Vim中编写我的提交消息,但是它在Emacs中打开它们。

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

如果您只想为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


对于崇高文本 :将其添加到.gitconfig 。 – --wait很重要。 (它允许在崇高类型的文本,并会等待保存/关闭事件。

 [core] editor = 'subl' --wait 

'subl'可以替换为可执行文件的完整路径,但通常在正确安装时才可用。

复制粘贴:

 git config --global core.editor "vim" 

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

环境和配置变量

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

在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: 

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

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

崇高不能保持重点。

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

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

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

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

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

 [core] editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' 
  • 保存并关闭文件。
  • 当你使用git时,只需要写git commit然后Enter 。 它会弹出打开Notepad ++。
  • 把你的提交信息写在文件的顶部,保存并关闭文件。 完成!

如果你正在与设计师一起使用命令行,然后Pico,并不知道捷径;)

 git config --global core.editor "pico" 

要么

 export VISUAL=pico export EDITOR=pico 

在Mac OSX 10中将Sublime Text 2设置为Git commit editor

运行这个命令:

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

要不就:

 $ git config --global core.editor "subl -w" 

使Visual Studio代码(vscode)成为默认的git编辑器

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

对于emacs用户

.emacs

 (server-start) 

shellrc

 export EDITOR=emacsclient 

Atom作为你的git编辑器

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

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

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

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

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

 git config --global core.editor notepad.exe 

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

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

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

我认为对于小记事本如提交消息记事本服务最好,因为它很简单,就是有窗户,随时打开。 即使你的崇高可能需要一两秒钟,当你有一个插件和东西的负载被炒高。

Mvim作为你的git编辑器

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

 git config --global core.editor "mvim --remote-wait" 

试试EDITOR=vim git commit

或者你可以通过在你的bashrc中export EDITOR=vim将你的EDITOR设置为vim。

对于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更多的细节。

对于想要将Linux子系统用于neovim的 Windows用户:

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

不是一个傻瓜式的解决方案,因为它不处理交互式重新绑定(例如)。 改进非常欢迎!

为Textmate用户

这将打开Textmate编辑器,当你想编辑你的提交。 需要安装textmate命令行工具。

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

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

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

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

在git提示符下键入:

 git config --global core.editor ~/k.sh