gpt4 book ai didi

git - Git 是否为 COMMIT_MSG 加载 Vim 设置?如果是这样,它们存储在哪里?

转载 作者:太空狗 更新时间:2023-10-29 14:07:43 25 4
gpt4 key购买 nike

我使用 Vim 作为 Git 的核心编辑器。

我注意到,每当 Git 在 git commit 之后启动 Vim(并假设启用了 Vim 的 syntax 选项)时,一些 Vim 设置不是我自己的应用。特别是,我的提交消息以我未在任何地方定义的方式突出显示(见下文);我用 zenburn color scheme ,但这与我的问题无关。

enter image description here

例如,请注意第 5 行的分支名称如何以不同于其余注释的颜色突出显示。

此外,还应用了促进官方 Git 格式化指南(参见 this)的设置:

  • Vim 对第 1 行第 50 列之后的任何可见字符尖叫,或者如果第二行不是空白;
  • Vim 的 textwidth 设置为 72。

enter image description here

不要误会我的意思;我发现这些 Vim 设置对于编写提交消息非常有用。我的问题很简单:

  1. Git 负责这些 Vim 设置吗?
  2. 如果是这样,Git 将这些设置存储在哪里(在什么文件中)?
  3. Git 通过什么机制加载这些设置?是否有一些 Git 钩子(Hook)负责?

这是一个重现这种情况的 shell 脚本:

#!/bin/bash
cd ~/Desktop
mkdir test_cmtmsg
cd test_cmtmsg
git init
touch test.txt
git add test.txt
git commit -m "inital commit"
# oops, made a mistake there
git commit --amend

最佳答案

Vim 附带了许多语法定义,包括用于 Git 的语法定义。这些可以在 $VIMRUNTIME/syntax 找到;具体来说,Git 提交消息是 $VIMRUNTIME/syntax/gitcommit.vim

关于git - Git 是否为 COMMIT_MSG 加载 Vim 设置?如果是这样,它们存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24046846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com