我更愿意在Vim中编写提交消息,但它在Emacs中打开它们。
如何配置Git以始终使用Vim?请注意,我想在全球范围内执行此操作,而不仅仅是针对单个项目。
答案 0 :(得分:3058)
如果你想为Git设置编辑器 ,那么(你不需要两者):
core.editor
:git config --global core.editor "vim"
GIT_EDITOR
环境变量:export GIT_EDITOR=vim
如果要为Git 以及其他程序设置编辑器,请设置标准化的VISUAL
和EDITOR
环境变量*:
export VISUAL=vim
export EDITOR="$VISUAL"
*不一定需要设置两者,但有些程序可能不会使用更正确的VISUAL
。请参阅VISUAL
vs. EDITOR
。
对于Sublime Text :
将其添加到.gitconfig
。 --wait
很重要。 (它允许在sublime中键入文本,并等待保存/关闭事件。
[core]
editor = 'subl' --wait
'subl'可以替换为可执行文件的完整路径,但通常在正确安装时可用。
答案 1 :(得分:531)
复制粘贴:
git config --global core.editor "vim"
如果您想知道自己在做什么。来自man git-commit
:
环境和配置变量
用于编辑提交日志消息的编辑器将从
GIT_EDITOR
环境变量,core.editor
配置变量,VISUAL
环境变量或EDITOR
中选择。环境变量(按此顺序)。
答案 2 :(得分:171)
在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:
答案 3 :(得分:59)
在Windows 7中,在添加“Sublime”编辑器时,它仍然给我一个错误:
由于空提交消息而中止提交。
Sublime无法保持专注。
为了解决这个问题,我在c:/ users / username /文件夹中打开了.gitconfig文件,并在双引号外添加了以下行--wait选项。
[core]
editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait
希望它对Sublime面临类似问题的人有所帮助。
答案 4 :(得分:52)
C:\Users\YOUR_USERNAME\.gitconfig
[core]
editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe'
git commit
并按Enter
即可。它将弹出Notepad ++。答案 5 :(得分:23)
使Visual Studio代码(vscode)成为您的默认git编辑器
git config --global core.editor "code --wait"
答案 6 :(得分:22)
如果你正在与使用命令行的设计师合作,那么Pico,并且不知道捷径;)
git config --global core.editor "pico"
或者
export VISUAL=pico
export EDITOR=pico
答案 7 :(得分:17)
运行此命令:
$ git config --global core.editor "/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"
或者只是:
$ git config --global core.editor "subl -w"
答案 8 :(得分:16)
要使vim在 ubuntu 20:04 上成为git的默认编辑器,请运行以下命令:
git config --global core.editor vim
答案 9 :(得分:15)
git config --global core.editor "atom --wait"
需要将Atom配置为从命令行运行以使其工作:
OS X :从Atom安装shell命令:菜单栏>原子> 安装Shell命令
Windows :无需任何操作 - 默认情况下,atom配置为从命令行运行
答案 10 :(得分:10)
git config --global core.editor notepad.exe
按 Ctrl + S 保存提交消息。要丢弃,只需关闭记事本窗口而不保存。
如果您点击了保存的快捷方式,则决定中止,转到文件 - >另存为,然后在打开的对话框中,将“另存为类型”更改为“所有文件(*。*)”。您将看到名为“COMMIT_EDITMSG”的文件。删除它,然后关闭记事本窗口。
编辑:或者,更轻松地从打开的记事本窗口中删除所有内容并点击保存。 (感谢mwfearnley的评论!)
我认为对于小写,例如提交消息,记事本服务最好,因为它很简单,有窗口,立即打开。当你有大量的插件和东西时,即使是你的崇高也可能需要一两秒才能被解雇。
答案 11 :(得分:9)
对于emacs用户
.emacs
:
(server-start)
shellrc
:
export EDITOR=emacsclient
答案 12 :(得分:7)
要在Windows中按照这些说明操作,请确保已安装git for Windows。在Windows中,我喜欢使用Git BASH,以便感觉更像Linux。
首先,我们要创建一个特殊的Sublime Text项目,以便我们可以在git调用编辑器时指定我们想要设置的特殊项目设置,以便在git中编辑时更容易。例如,我通常在大多数项目中将标尺设置为120个字符,但对于git提交消息,我希望它为72个字符,这样当您调用git log
或git lg
时它很适合终端。
打开Sublime Text并转到" File" - > "新窗口"创建一个新的匿名项目。转到"项目" - > "将项目另存为......"并选择一个地方来保存它。 在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":
[
]
}
现在我们需要通过编辑.gitconfig
文件来设置git使用的编辑器。
您的用户副本将位于~/.gitconfig
。打开此文件并添加以下行。 请务必使用您刚才创建的git项目的正确路径名称!我使用~/.gitconfig.sublime-project
。
[core]
editor = subl --project ~/.gitconfig.sublime-project --wait
--wait
很重要,因为它迫使git等到你继续之前关闭文件。只要git打开Sublime,--project
行就可以告诉Sublime Text您想要打开哪个项目。
Per @ digitaldreamer上面的答案(https://stackoverflow.com/a/2596835/4561887)," subl
可以替换为可执行文件的完整路径,但[别名subl
]是通常在[Sublime]正确安装时可用。"
对于Windows,首先阅读Linux说明以获取背景信息。现在我们将做一些几乎相同的事情。
(可选:在Git BASH中创建subl
别名):
打开一个文本编辑器(例如:Notepad,Notepad ++,Sublime Text,Geany等),并创建一个名为" .bash_profile"的文件。在您的主目录中。因此它的路径是:C:\Users\MY_USER_NAME\.bash_profile
。将以下内容保存到其中:
alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe"
这将创建一个名为subl
的Git BASH别名,我们现在可以在Git BASH for Windows中使用它来轻松打开Sublime。此步骤不是必需的,但对于一般的Git BASH使用它是有用的。现在,您可以在Git BASH中调用subl .
,以在当前目录中打开一个新的Sublime项目。
<强>(强制性):强>
编辑主目录中的.gitconfig
文件:C:\Users\MY_USER_NAME\.gitconfig
,向其中添加以下内容。请注意上面Linux指令的细微更改:
[core]
editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
/
NOT \
分隔路径名中的文件夹! (感谢VonC for helping me see this)。subl
别名在这里不起作用,因此您无法像在Linux示例中那样使用它,而是必须指定整个路径,如图所示上方。~
符号仍可用于访问Windows主目录。 这为您提供了git commit
消息的语法突出显示,以及对git blame
(我在Sublime Text中经常使用)或git commit
等其他git命令的访问权限。 #39;在Sublime Text中使用,因为我更喜欢一般git流的命令行,正如我在下面的评论中提到的这个答案)。
安装软件包:首先,确保安装了“软件包控制”。接下来,按 Ctrl + Shift + P (与工具→命令选项板相同)并键入“Package Control:Install Package”的全部或部分内容,然后按Enter键。在出现的搜索框中,搜索包&#34; Git&#34;然后按Enter键或单击它以自动安装它。
安装完成后, Ctrl + Shift + P 然后搜索&#34; git&#34;将调出您可以在Sublime Text内部使用的git命令,例如git blame
。
现在,当您从命令行开始正常呼叫git commit
时,Sublime Text将打开我们上面创建的.gitconfig.sublime-project
,并使用该项目的设置!当你输入一个段落时,你会注意到它超出了我们设置的标尺,因为软自动换行是关闭的。 要在每行末尾通过自动插入的硬返回强制进行硬包装,请将光标放在要自动换行的长行上,然后按 Alt + Q 。现在它将在72个字符处进行硬包装/硬折叠,这是我们在项目设置中设置的#c; &#34;标尺&#34;上面的参数。
现在,使用 Ctrl + S 保存提交消息,然后使用 Ctrl +退出(以完成git commit
) Shift + W 。
完成!
答案 13 :(得分:5)
这为遇到此问题的人们提供了答案,他们可能希望链接vim以外的编辑器。
Github 所链接的资源很可能会保持最新状态,即使编辑人员的更新(包括此问题)没有得到更新时,更新编辑器也是如此。
Associating Text Editors with 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计算机上,主目录可能是C:\Users\your-user-name
,其中your-user-name是您的登录名。
在命令行中,您可以通过输入cd ~
进入此目录。
例如,上面的命令将在[core]
部分下添加以下行,如下所示:
[core]
editor = 'C:/Program Files/sublime text 3/subl.exe' -w
如果您使用的是其他编辑器,请使用上述任一方法替换为编辑器的路径。 (并希望不需要使用标记就可以达到最佳使用效果。)
答案 14 :(得分:3)
与所有其他GUI应用程序一样,您必须使用wait标志启动mvim。
git config --global core.editor "mvim --remote-wait"
答案 15 :(得分:2)
对于希望将neovim与Windows的Linux子系统一起使用的Windows用户:
git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"
这是不一个万无一失的解决方案,因为它不处理交互式变基(例如)。非常欢迎改进!
答案 16 :(得分:1)
有一个你可以使用的命令列表,但对于 vs 代码使用这个
git config --global core.editor "code --wait"
这是所有编辑器的链接:https://git-scm.com/book/en/v2/Appendix-C%3A-Git-Commands-Setup-and-Config
答案 17 :(得分:1)
在适用于TextMate的macOS Big Sur(11.0)beta上:没有任何环境变量选项起作用。 (设置所有三个:GIT_EDITOR,VISUAL和EDITOR。)
最后在git中设置了global core.editor,它起作用了:
git config --global core.editor "~/bin/mate -w"
答案 18 :(得分:1)
对于Windows,Neovim:
# .gitconfig
[core]
editor='C:/tools/neovim/Neovim/bin/nvim-qt.exe'
答案 19 :(得分:1)
仅仅因为我来这里是为了寻求一次性解决方案(在我的情况下,我通常使用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
答案 20 :(得分:1)
在使用git-review
时,我不得不修改sequence.editor
的值才能进行交互式变基(git rebase -i -p
):
git config --global sequence.editor "gvim" # or whatever your prefer
gvim
要求:apt install vim-gtk
答案 21 :(得分:1)
git config --global core.editor "open -n -W -a TextWrangler"
此外,请确保您的“TextWrangler&gt;偏好设置&gt;应用程序&gt;当TextWrangler变为活动时:”设置设置为“不执行任何操作”
这适用于OS X 10.11.4和Mac应用程序商店中的TextWrangler 5.0.2。
说明:
-n 表示在新实例中打开。
-W 表示在使用已编辑文件的内容作为提交消息之前等待应用程序退出。
-a TextWrangler 表示使用TextWrangler应用程序打开文件。
有关详细信息,请参阅Mac终端应用中的man open
。
答案 22 :(得分:1)
试试EDITOR=vim git commit
。
或者您可以在bashrc中将编辑器设置为vim export EDITOR=vim
。
答案 23 :(得分:0)
对于Mac OS X,使用TextEdit或自然环境编辑器输入文本:
git config --global core.editor "open -W -n"
答案 24 :(得分:0)
对于IntelliJ用户
当我尝试git rebase时,出现以下错误: '提示:等待您的编辑器关闭文件...代码-n -w:代码:找不到命令错误:编辑器'code -n -w'存在问题。
当我尝试将IntelliJ与Git关联时,出现了相同的错误:
问题是我的环境PATH变量中没有添加命令 code 。而且我不想从终端使用Visual Studio Code。这就是为什么它提示“找不到命令”的原因。我通过删除
解决了这个问题在我的.gitconfig文件的核心部分中编辑器=代码-n -w
。 Git再次正常工作。
答案 25 :(得分:0)
要将EmEditor设置为Git的默认文本编辑器,请打开Git Bash,然后键入:
git config --global core.editor "emeditor.exe -sp"
需要EmEditor v19.9.2或更高版本。
答案 26 :(得分:0)
对于MAC,BBEdit:
首先,打开BBEdit,单击BBEdit徽标,然后选择“安装命令行工具”。
然后从命令行
git config --global core.editor "BBEdit -w"
答案 27 :(得分:-1)
创建一个名为“k.sh”的文件,添加以下文本并放在主目录中(〜):
winpty "C:\Program Files (x86)\Kinesics Text Editor\x64\k.exe" $1
在git提示符下输入:
git config --global core.editor ~/k.sh
答案 28 :(得分:-1)
当您要编辑提交时,这将打开Textmate编辑器。 需要安装textmate命令行工具。
git config --global core.editor "mate -w"