17

As mentioned in this answer, since Git 1.8.2 you can use core.commentchar config value to change commit message comments to something else than the default # (hashmark or hashsign).

That is a life-saver e.g. if your commit message policy wants you to start commit message with ticket number:

#123 Fixed array indices

Sad part is that this breaks Vim syntax highlighting.

How can you bring the beauty back?

4

1 回答 1

16

您应该尝试运行:verbose syntax. 活动语法文件可能是$VIMRUNTIME\syntax\gitcommit.vim(可能在您的github 版本.vim中)。

它会告诉您哪个语法行将触发格式化为注释。

您可能会看到类似的内容:

 gitcommitComment xxx match /^#.*/
     links to Comment

或者

 syn match   gitcommitComment   "^#.*"

这意味着它匹配以 . 开头的每一行#

您也许可以对其进行修改,以便#第一行的 a 不被视为注释。我不知道syntax格式足以给你一个完整的解决方案。

 \%^   match the beginning of file
 \%1l  match line 1
 \%>1l match below line 1

因此,您可能会尝试修改 gitComment 模式,使其在 git 提交的第 1 行不起作用。

(我尝试了一些东西,但没有设法只排除第一行评论!似乎还有diffComment一些事情搞砸了,因为 gitcommit 包含 diff 格式syn include @gitcommitDiff syntax/diff.vim))

有关详细信息,请参阅:help syntax:help pattern

另一个关于语法高亮的好资源:Learn Vim the Hard Way,第 46 章

于 2013-04-23T09:11:36.780 回答