用于git提交消息的vim语法高亮显示 - 自定义commentchar

时间:2013-04-23 08:34:09

标签: git vim comments syntax-highlighting

如上所述in this answer,自Git 1.8.2起,您可以使用core.commentchar配置值将提交消息注释更改为默认值#(hashmark或hashsign)以外的其他内容。

这可以节省生命,例如如果您的提交消息策略要求您启动带有票号的提交消息:

#123 Fixed array indices

可悲的是,这打破了Vim语法高亮。

你怎么能把美丽带回来?

1 个答案:

答案 0 :(得分:14)

您应该尝试运行:verbose syntax。活动语法文件可能是$VIMRUNTIME\syntax\gitcommit.vimgithub version,可能在.vim中)。

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

你可能会看到类似的东西:

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

 syn match   gitcommitComment   "^#.*"

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

您可以修改它,以便第一行的#不被视为评论。我不知道syntax格式足以为您提供完整的解决方案。

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

因此,您可能会尝试修改gitComment模式,使其无法在您的git提交的第1行上运行。

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

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

关于语法highligthing的另一个好资源:Learn Vim the Hard Way, chapter 46