Git Commit Message, Vim, and Markdown
It's been bothering me for years.
# is both the start of a comment in a git commit message, but also
the syntax for headings in Markdown.
Personally, I prefer using commit messages to populate pull request descriptions
whenever possible. On GitHub, This happens automatically when the pull request
contains a single commit. But I can't type, say an H3 as
### Heading in the
commit message (in Vim, most of the time) because it gets treated as a comment!
But thanks to this twitter interaction with @dmartincy, I finally solved this problem:
I haven't found myself in that situation, but maybe you could do 'git config core.commentChar ";"' before creating the commits? That will change the default git commit marker (#) to something that won't conflict with Markdown titles.— Daniel Martín (@dmartincy) April 6, 2020
As mentioned by Daniel, Git has introduced a setting called
documented here, which lets us control which character
becomes the start of a comment line. Let's say we want to replace the default
;, we can edit
~/.gitconfig to include this preference:
[core] commentChar = ";"
… and this will affect every Git repository on this computer.
For me, though, this broke git commit syntax highlighting in Vim: the comments,
;, are no longer recognized as comments. To fix this, I updated
Vim's syntax for file type
gitcommit. In your Vim setting directory
~/.config/nvim/ for me), create a file
syntax/gitcommit.vim file (unless
you already have one), add the following line:
syn match gitcommitComment "^;.*"
; matches my preferred
core.commentChar for Git.
Et voilà! Git commit message looks tippy-top in Vim again!