如何全局配置git以使用特定的编辑器(例如vim)提交消息?
当前回答
在macOS Big Sur(11.0)测试版上,TextMate:所有环境变量选项都无效。(设置所有三个:GIT_EDITOR、VISUAL和EDITOR。)
最后,在git中设置全局core.editor,这起到了作用:git-config--全局core.editor“~/bin/mate-w”
其他回答
有一个命令列表,您可以使用,但对于vs代码,请使用此命令
git config --global core.editor "code --wait"
这是所有编辑器的链接:https://git-scm.com/book/en/v2/Appendix-C%3A-Git命令设置和配置
对于IntelliJ用户
当我尝试git rebase时,我遇到了以下错误:'提示:正在等待编辑器关闭文件。。。code-n-w:code:未找到命令错误:编辑器“code-n-w”存在问题
当我试图将IntelliJ与Git关联时,出现了同样的错误:
问题是我没有在环境PATH变量中添加命令代码。我不想在我的终端上使用Visual Studio代码。这就是为什么它提示“命令未找到”。我通过删除
编辑器=代码-n-w
从.gitconfig文件的核心部分。Git再次正常工作。
对于Mac应用商店中TextWrangler的用户:
git config --global core.editor "open -n -W -a TextWrangler"
此外,确保“TextWrangler>首选项>应用程序>当TextWranger变为活动时:”设置设置为“不执行任何操作”
这适用于Mac应用商店中使用TextWrangler 5.0.2的OS X 10.11.4。
说明:
-n表示在新实例中打开。
-W表示在使用编辑文件的内容作为提交消息之前,等待应用程序退出。
-a TextWrangler表示使用TextWrangle应用程序打开文件。
有关详细信息,请在Mac终端应用程序中查看man open。
在Windows 7中,将编辑器设置为记事本++
打开任何文本编辑器。打开此文件: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提交时,只需编写gitcommit并按Enter键。它将弹出记事本++。在文件顶部写入提交消息,然后保存并关闭文件。完成!
Sublime Text 3或4作为Git编辑器的最佳设置(Windows和Linux说明):
要在Windows中遵循这些说明,请确保已安装Git for Windows。在Windows中,我喜欢使用GitBash,这样感觉更像Linux。
首先,我们想创建一个特殊的Sublime Text项目,这样我们就可以在Git调用编辑器时指定需要设置的特殊项目设置,以便在Git中进行编辑时更容易。例如,在大多数项目中,我通常将标尺设置为120个字符,但对于Git提交消息,我希望它是72个字符,这样当您调用gitlog或gitlg时,它很适合终端。
1.使用我们想要用于编辑Git提交消息的设置创建Sublime Text项目
打开Sublime文本并转到菜单“文件”→ “新建窗口”以创建新的匿名项目。转到菜单“项目”→ “将项目另存为…”并选择保存位置。在Linux中,我将其保存在我的Linux主目录中,文件名为.gitconfig.sublime-Project。因此,其路径为:~/.gitconfig.sublime-Project.在Windows中,也将其保存到主目录中。例如:C:\Users\my_USER_name\.gitconfig.seublime-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使用的编辑器
现在我们需要通过编辑.gitconfig文件来设置Git使用的编辑器。
对于Linux:
您的用户副本将位于~/.gitconfig中。打开此文件并添加以下行。确保使用上面刚刚创建的Git项目的正确路径名!我正在使用~/.gitconfig.sublime-project。
[core]
editor = subl --project ~/.gitconfig.sublime-project --wait
--wait很重要,因为它迫使Git等到您关闭文件后再继续。--project行很重要,它可以告诉Sublime Text,每当Git打开Sublime文本时,您希望打开哪个项目。
根据上面@digitaldreamer的回答(https://stackoverflow.com/a/2596835/4561887),“subl可以替换为可执行文件的完整路径,但[别名subl]通常在[Sublime]正确安装时可用。”
对于Windows:
对于Windows,首先阅读Linux说明了解背景信息。现在我们将做一些几乎相同的事情。
(可选:创建用于Git Bash的subl别名):
打开文本编辑器(例如记事本、记事本++、Sublime text、Geany等),并在主目录中创建一个名为“.bash_profile”的文件。因此,其路径将为:C:\Users\MY_USER_NAME\.bash_profile。将以下内容保存到其中:
alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe"
这将创建一个名为subl的GitBash别名,我们现在可以在GitBash for Windows中使用它,以便轻松打开Sublime文本。这一步骤不是必需的,但对于一般的GitBash使用来说很有用。现在你可以调用subl。,例如,在GitBash中,在当前目录中打开一个新的SublimeText项目。
(必填):
通过向主目录C:\Users\MY_USER_NAME\.gitconfig中添加以下内容来编辑.gitconfig文件:
[core]
editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
请注意,必须指定Sublime Text可执行文件的完整路径。注意斜线的方向!使用/NOT\分隔路径名中的文件夹!(感谢VonC帮助我看到这一点)。我们为上面的GitBash创建的subl别名在这里不起作用,因此您不能像我们在Linux示例中那样使用它,而是必须如上所示指定整个路径。然而,~符号在这里仍然可以访问Windows主目录。
2.5.(可选)将“Git”包安装到Sublime Text 3中。
这为您提供了git提交消息的语法高亮显示,以及对其他git命令的访问,如git commit(我在Sublime Text中经常使用)或git commmit(我在Sublime Text没有使用,因为我更喜欢使用命令行来处理一般git流,正如我在下面的回答中所提到的)。
要安装软件包:首先,确保安装了“软件包控制”。接下来,按Ctrl+Shift+P(与工具相同→ Command Palette)并键入全部或部分“包控制:安装包”,然后按Enter键。在出现的搜索框中,搜索软件包“Git”,然后按Enter键,或单击它,自动安装它。
安装完成后,Ctrl+Shift+P然后搜索“git”将显示git命令,您现在可以在Sublime Text内部使用,例如git责备。
3.使用它
现在,例如,当您从命令行正常调用gitcommit时,SublimeText将打开到我们上面创建的.gitconfig.Sublime-project中,并带有该项目的设置!当你键入一个段落时,你会注意到它超出了我们设置的标尺,因为软换行已关闭。要通过在每行末尾自动插入硬回车来强制硬换行,请将光标放在想要自动换行的长行上,然后按Alt+Q。现在,它将以72个字符的长度硬换行/硬折叠,这是我们在上面项目设置的“标尺”参数中设置的。
现在,用Ctrl+S保存提交消息,然后用Ctrl+Shift+W退出(以完成git提交)。
完成!
相关:
Windows上使用Meld的Git合并工具https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles
推荐文章
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 错误:您对以下文件的本地更改将被签出覆盖
- Git rebase—即使所有合并冲突都已解决,仍然会继续报错
- 在Git中,我如何知道我的当前版本是什么?
- 如何回到行之前编辑的最后一个在Vim?
- 跟踪所有远程git分支作为本地分支
- 自定义SSH端口上的Git
- git如何显示不存在于.gitignore中的未跟踪文件
- Git错误:遇到7个文件应该是指针,但不是
- GitHub克隆与OAuth访问令牌
- 移动(或“撤销”)最后一个git提交到非暂存区域
- 如何跳转到一个特定的人物在vim?
- 我可以在GitHub上对要点进行拉请求吗?
- 如何删除一个大的文本块而不计算行?