0

I have a custom .gitmessage. It is defined in the git config. I've added a ~/.vim/after/ftplugin/gitcommit.vim to redefine a couple of things in the plugin (in support of Conventional Commits), e.g., textwidth.

My .gitmessage looks something like this:



#subject-|---------|---------|---------|---------|---------|---------|---------|---------|-------->|
# Commit messages should follow the Conventional Commits Specification
# <type>(<optional scope>): <imperative subject>
# empty separator line
# <optional body>
# empty separator line
# <optional footer>
#
# API relevant changes                              || perf     commits improve performance
#   feat commits add a new feature                  || revert   commit, well, revert a previous 
#   fix  commits fix a bug                          ||          commit
...
...

where I provide an ASCII "ruler" for 100 chars (though the VIM filetype plugin config autowraps to the textwidth per my customization, &tc.

However, I would like to colorize the conventional commit sample and the type keywords, e.g., feat, fix, perf, &tc.

I've tried most of standard ASCII escape codes in the .gitmessage, e.g., \\e[1;30m, ^[1;30m (Ctrl-V, esc), and \033[1;30m. Alas, they all just get dumped to the vim editor—it makes sense that vim would make sure that these codes are editable—but gitcommit.vim does colorize the diff in git commit --all --verbose...

This appears to be, maybe, a function of shellescape (see :h shellescape in vim). I see this used in some of the filetype plugins, but I'm not a plugin hacker.

Any pointers?

1 Answer 1

1

Vim doesn't care about your escape codes.

A quick and dirty method would be to use :help :match or :help matchadd() in your custom ftplugin:

:match

But the real solution is to create your own syntax script, following the instructions under :help usr_44. See $VIMRUNTIME/syntax/gitcommit.vim for a start.

Sign up to request clarification or add additional context in comments.

1 Comment

This is the hint I needed to get started. I'm already writing my ~/.vim/after/syntax/gitcommit.vim with some initial success!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.