我更喜欢在 Vim 中编写我的提交消息,但 git 在 Emacs 中打开它们。
如何配置 git 以始终使用 Vim?请注意,我想在全球范围内执行此操作,而不仅仅是针对单个项目。
我更喜欢在 Vim 中编写我的提交消息,但 git 在 Emacs 中打开它们。
如何配置 git 以始终使用 Vim?请注意,我想在全球范围内执行此操作,而不仅仅是针对单个项目。
如果您只想为 Git 设置编辑器,请执行以下任一操作(您不需要两者):
core.editor
在你的 Git 配置中设置:git config --global core.editor "vim"
或者
GIT_EDITOR
环境变量:export GIT_EDITOR=vim
如果要为 Git和其他程序设置编辑器,请设置标准化VISUAL
和EDITOR
环境变量*:
export VISUAL=vim
export EDITOR="$VISUAL"
注意:不一定需要同时设置两者,但某些程序可能不会使用更正确的VISUAL
. 见VISUAL
与EDITOR
..
一些编辑器需要一个--wait
标志,否则他们会打开一个空白页面。例如:
复制粘贴这个:
git config --global core.editor "vim"
如果你想知道你在做什么。来自man git-commit
:
环境和配置变量
用于编辑提交日志消息的编辑器将从
GIT_EDITOR
环境变量、core.editor
配置变量、VISUAL
环境变量或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”编辑器时它仍然给我一个错误:
由于提交消息为空而中止提交。
Sublime 无法保持焦点。
为了解决这个问题,我在 c:/users/username/ 文件夹中打开了 .gitconfig 文件,并在单引号之外添加了以下带有 --wait 选项的行。
[core]
editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait
希望它对面临与 Sublime 类似问题的人有所帮助。
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 commit
并按Enter
。它将弹出打开记事本++。使 Visual Studio Code (vscode) 成为您的默认 git 编辑器
git config --global core.editor "code --wait"
如果您使用命令行与设计师合作,那么 Pico,并且不知道捷径;)
git config --global core.editor "pico"
或者
export VISUAL=pico
export EDITOR=pico
git config --global core.editor "atom --wait"
Atom 需要配置为从命令行运行才能使上述工作:
OS X:从 Atom 安装 shell 命令:菜单栏 > Atom > 安装 Shell 命令
Windows:无需任何操作 - atom 默认配置为从命令行运行
运行此命令:
$ git config --global core.editor "/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"
要不就:
$ git config --global core.editor "subl -w"
要使 vim 在ubuntu 20:04上成为 git 的默认编辑器,请运行以下命令:
git config --global core.editor vim
git config --global core.editor notepad.exe
点击Ctrl+S保存您的提交信息。要放弃,只需关闭记事本窗口而不保存。
如果您点击保存的快捷方式,然后决定中止,请转到文件->另存为,然后在打开的对话框中,将“保存类型”更改为“所有文件 (*.*)”。您将看到一个名为“COMMIT_EDITMSG”的文件。删除它,然后关闭记事本窗口。
编辑:或者,更容易地,从打开的记事本窗口中删除所有内容并点击保存。(感谢mwfearnley的评论!)
我认为对于诸如提交消息记事本之类的小型记录来说最好,因为它很简单,有窗口,可以立即打开。当你有大量插件和东西时,即使是你的崇高也可能需要一两秒钟才能被激发。
这为遇到此问题的人提供了一个答案,他们可能想要链接除 vim 之外的编辑器。
当编辑器更新时, Github的链接资源可能会保持最新,即使关于 SO(包括这个)的答案不是。
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
如果您有不同的编辑器,只需使用上述任一方法替换为您的编辑器的路径。(并希望最佳使用不需要标志。)
对于 emacs 用户
.emacs
:
(server-start)
shellrc
:
export EDITOR=emacsclient
要在 Windows 中遵循这些说明,请确保您已安装Git for Windows。在 Windows 中,我喜欢使用 Git Bash,让它感觉更像 Linux。
首先,我们要创建一个特殊的 Sublime Text 项目,以便我们可以在 Git 调用编辑器时指定我们想要设置的特殊项目设置,以便在 Git 中进行编辑时更容易。例如,在大多数项目中,我通常将我的标尺设置为 120 个字符,但对于 Git 提交消息,我希望它为 72 个字符,以便在您调用git log
或git lg
.
打开 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":
[
]
}
现在我们需要通过编辑文件来设置 Git 使用的编辑器.gitconfig
。
您的用户副本将位于~/.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,首先阅读 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
/
NOT\
分隔路径名中的文件夹!(感谢 VonC帮我看到这个)。subl
为上面的 Git Bash 创建的别名在这里不起作用,因此您不能像在 Linux 示例中那样使用它,而是必须指定整个路径,如上所示。~
符号在此处仍然可以访问您的 Windows 主目录。这使您可以突出显示消息的语法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
.
现在git commit
,例如,当您像往常一样从命令行调用时,Sublime Text 将打开.gitconfig.sublime-project
我们上面创建的项目设置!当您键入一个段落时,您会注意到它超出了我们设置的标尺,因为软自动换行已关闭。要通过在每行末尾自动插入硬回车强制硬换行,请将光标放在要自动换行的长行上,然后按Alt+ Q。它现在将以 72 个字符进行硬包装/硬折叠,这是我们在上面项目设置的“标尺”参数中设置的。
现在,使用+保存您的提交消息,并使用Ctrl+ +退出S(以完成您的git commit
)。CtrlShiftW
完毕!
像所有其他 GUI 应用程序一样,您必须使用等待标志启动 mvim。
git config --global core.editor "mvim --remote-wait"
有一个您可以使用的逗号列表,但对于 vs 代码使用这个
git config --global core.editor "code --wait"
这是所有编辑器的链接:https ://git-scm.com/book/en/v2/Appendix-C%3A-Git-Commands-Setup-and-Config
对于想要将neovim与适用于 Linux 的 Windows 子系统一起使用的 Windows 用户:
git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"
这不是一个万无一失的解决方案,因为它不处理交互式变基(例如)。非常欢迎改进!
对于 Mac OS X,使用TextEdit或自然环境编辑器编辑文本:
git config --global core.editor "open -W -n"
仅仅因为我来这里是为了寻找一个一次性解决方案(在我的情况下,我通常使用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
试试看EDITOR=vim git commit
。
或者您可以export EDITOR=vim
在 bashrc 中将 EDITOR 设置为 vim。
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 终端应用程序。
使用时,git-review
我必须修改sequence.editor
value 才能进行交互式 rebase ( git rebase -i -p
):
git config --global sequence.editor "gvim" # or whatever your prefer
gvim
要求:apt install vim-gtk
在 TextMate 的 macOS Big Sur (11.0) beta 上:环境变量选项均无效。(设置所有三个:GIT_EDITOR、VISUAL 和 EDITOR。)
最后在 git 中设置全局 core.editor ,并且有效:
git config --global core.editor "~/bin/mate -w"
对于 Windows,Neovim:
# .gitconfig
[core]
editor='C:/tools/neovim/Neovim/bin/nvim-qt.exe'
要将 EmEditor 设置为 Git 的默认文本编辑器,请打开 Git Bash,然后键入:
git config --global core.editor "emeditor.exe -sp"
需要 EmEditor v19.9.2 或更高版本。
对于 MAC,BBEdit:
首先,打开 BBEdit,单击 BBEdit 徽标,然后选择安装命令行工具。
然后从命令行,
git config --global core.editor "BBEdit -w"
当您想要编辑提交时,这会打开 Textmate 编辑器。需要安装 textmate 命令行工具。
git config --global core.editor "mate -w"
创建一个名为“k.sh”的文件,添加以下文本并放在您的主目录 (~) 中:
winpty "C:\Program Files (x86)\Kinesics Text Editor\x64\k.exe" $1
在 git 提示符下输入:
git config --global core.editor ~/k.sh