为git提交信息添加vim语法高亮 - 自定义注释字符

17

此答案所述,自 Git 1.8.2 起,您可以使用 core.commentchar 配置值,将提交信息注释更改为与默认的 # 不同的其他内容。

这个功能可以拯救生命,例如,如果您的提交信息规则要求您以票号开头:

#123 Fixed array indices

遗憾的是,这会破坏Vim的语法突出显示。

你如何恢复它的美丽呢?

1个回答

16

你应该尝试运行:verbose syntax命令。活动的语法文件可能是$VIMRUNTIME\syntax\gitcommit.vimGitHub 版本,很可能在你的.vim中)。

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

你可能会看到类似以下的内容:

 gitcommitComment xxx match /^#.*/
     links to Comment
或者
 syn match   gitcommitComment   "^#.*"

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

你可能可以修改它,使第一行的 # 不被视为注释。我不太了解语法格式,无法给出完整的解决方案。

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

因此,您可以尝试修改gitComment模式,使其不适用于提交的第一行。

(我尝试了一些方法,但无法仅排除注释的第一行!似乎还有一个diffComment引起了问题,因为gitcommit包括带有syn include @gitcommitDiff syntax/diff.vim的diff格式)

有关更多详细信息,请参见:help syntax:help pattern

语法高亮的另一个好资源: 学习 Vim 的困难之路,第46章.


2
成功了!我只是添加了这个来保留完整的 HL 功能(例如在第二行上显示错误或稍后在注释中着色状态详细信息),实际上我在文件中几乎所有地方# 更改为我的 core.commentchar (')。时间会证明它是否破坏了什么... ;) - Alois Mahdal
有人知道我是否可以通过运行系统命令(例如使用ansible)来进行“调整”设置我的系统吗? - lony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接