Eu tenho este ~/.gitconfig
apelido:
b = "!r() { count=10; git for-each-ref --sort=-committerdate refs/heads --format='%(HEAD)%(color:bold green)%(committerdate:relative)|%(color:yellow)%(refname:short)|%(color:red)%(objectname:short)%(color:reset)|%(color:blue)%(subject)|%(color:magenta)%(authorname)%(color:reset)' --color=always --count=${count:=10} | column -c 10 -ts '|'; }; r"
Meu problema com essa função é que ela formata a string com base na linha mais longa, ou seja, se eu tiver uma tabela com os seguintes valores ( Esta não é a saída de git branch --format
, apenas um exemplo para ilustrar o column
comportamento ):
a, b, c
x, yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy, z
então vai parecer
a, b , c
x, yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy, z
Este é um bom comportamento que column
é responsável por, no entanto, eu quero cortar o comprimento da string, então, por exemplo, nenhuma coluna será maior > 4:
a, b , c
x, yyyy, z
Consegui adicionar um pipe awk
para fazer algo assim (usei 25 caracteres):
b = "!r() { count=10; git for-each-ref --sort=-committerdate refs/heads --format='%(HEAD)%(color:bold green)%(committerdate:relative)|%(color:yellow)%(refname:short)|%(color:red)%(objectname:short)%(color:reset)|%(color: blue)%(subject)|%(color:magenta)%(authorname)%(color:reset)' --color=always --count=${count:=10} | column -c 10 -ts '|' | awk '{for(i=1;i<NF;i++){$i=substr($i,1,25)}; print $0}'; }; r"
mas bagunça a mesa :(
Ele também se comporta mal com *
o início da ramificação atual.
Como posso consertar isso?
- Tentei instalar uma versão mais recente
column
que deveria ter uma-c
opção para controlar a largura mas não consegui :( (baixado daqui e tentei./configure && make install
. Não funcionou como esperado). - Tentei formatar a função com
\
e novas linhas - não funcionou. As funções devemgitconfig
parecer tão feias?
$ git --version
git version 2.34.1