我有这个~/.gitconfig
别名:
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"
我对这个函数的问题是它根据最长的行格式化字符串,即如果我有一个包含以下值的表(这不是来自的输出git branch --format
,只是一个说明column
行为的示例):
a, b, c
x, yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy, z
然后它看起来像
a, b , c
x, yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy, z
这是一个很好的行为column
,但是我想修剪字符串长度,因此,例如,没有一列会超过 4:
a, b , c
x, yyyy, z
我设法添加了一个管道awk
来做类似的事情(使用 25 个字符):
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"
但它把桌子弄乱了:(
它*
在当前分支的开头也有不正常的行为。
我怎样才能解决这个问题?
- 我尝试安装一个较新的版本,
column
该版本应该有一个-c
控制宽度的选项,但我不能:((从这里下载然后尝试./configure && make install
。没有按预期工作)。 - 试图用
\
换行符格式化函数 - 没有用。函数必须gitconfig
看起来那么难看吗?
$ git --version
git version 2.34.1