Выделение синтаксиса vim для git сообщений о фиксации - custom commentchar

Как упоминалось в этом ответе, поскольку Git 1.8.2 вы можете использовать значение конфигурации core.commentchar, чтобы изменить комментарии сообщения коммита к чему-то еще, чем значение по умолчанию # (hashmark или hashsign).

Это спасатель жизни, например. если ваша политика сообщения о совершении сделки требует, чтобы вы запустили сообщение фиксации с номером билета:

#123 Fixed array indices

Печальная часть состоит в том, что это нарушает выделение синтаксиса Vim.

Как вы можете вернуть красоту?

Ответ 1

Вам следует попробовать запустить :verbose syntax. Активный файл синтаксиса, вероятно, $VIMRUNTIME\syntax\gitcommit.vim (версия github, который, скорее всего, будет в вашем .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, чтобы он не работал в строке 1 вашего git commit.

(я пробовал некоторые вещи, но мне не удалось исключить только первую строку комментария. Кажется, что есть и diffComment messing things, потому что gitcommit включает в себя формат diff с syn include @gitcommitDiff syntax/diff.vim) )

Подробнее см. :help syntax и :help pattern.

Еще один хороший ресурс по синтаксису highligthing: Изучите жесткий диск Vim, глава 46.