¿Cómo lidiar con las líneas largas en .gitconfig?

En mi .gitconfig tengo esto:

 [format] pretty = "%C(bold blue)%h %C(bold green)%<|(20)% \ ar%C(reset) %C(white)% s %C(dim white) -% an%C(reset) \ %C(bold yellow)% d \ %C(bold networking)% N" 

Tenga en count que las tres últimas líneas no se pueden sangrar, de lo contrario, obtendría una indentación indeseada en la cadena de formatting.

¿Hay alguna forma más elegante de escribir esto como esta (que, por supuesto, no funciona):

 [format] pretty = "%C(bold blue)%h %C(bold green)%<|(20)%" + "ar%C(reset) %C(white)% s %C(dim white) -% an%C(reset)" + "%C(bold yellow)% d " + "%C(bold networking)% N" 

Puedes escribirlo dentro de un script bash y allí puedes usar una cadena para lograr lo que quieres.

por ejemplo:

~/.githelper

 #!/bin/bash HASH="%C(yellow)%h%Creset" RELATIVE_TIME="%Cgreen(%ar)%Creset" AUTHOR="%C(bold blue)<%an>%Creset" REFS="%C(networking)%d%Creset" SUBJECT="%s" FORMAT="$HASH}$RELATIVE_TIME}$AUTHOR}$REFS $SUBJECT" show_git_head() { pretty_git_log -1 git show -p --pretty="tformat:" } pretty_git_log() { git log --graph --abbrev-commit --date=relative -- pretty="tformat:${FORMAT}" $* | # Repalce (2 years ago) with (2 years) sed -Ee 's/(^[^<]*) ago)/\1)/' | # Replace (2 years, 5 months) with (2 years) sed -Ee 's/(^[^<]*), [[:digit:]]+ .*months?)/\1)/' | # Line columns up based on } delimiter column -s '}' -t | # Page only if we need to less -FXRS } 

que su alias usará este script así, por ejemplo:

 l = "!source ~/.githelper && pretty_git_log"