某些 Mercurial 命令的输出格式会根据终端的宽度而有所不同。当我只需要查看输出时这很方便,但当输出不是发送到终端而是发送到管道或文件时非常不方便。
有什么方法可以覆盖终端宽度并让 Mercurial 格式化针对我在命令行上指定的宽度优化的输出吗?
这是我遇到的问题的示例:
$ hg log --stat -r 4210 | wc
10 37 375
$ hg log --stat -r 4210 | wc
10 37 375
$ hg log --stat -r 4210 | wc
10 37 512
$ hg log --stat -r 4210 | wc
10 37 512
$
我在这一系列命令的中途更改了窗口的大小,Mercurial 开始产生不同的输出。我想要的是这样的:
$ hg log --width 79 --stat -r 4210 | wc
10 37 374
$
无论终端的实际宽度如何,我都可以以某种方式指定我希望将输出格式化为 79 个字符宽。
在 中可以找到以下函数
/usr/lib/python2.7/dist-packages/mercurial/ui.py
:由此可见,答案就是简单地
COLUMNS=79
在hg
命令前写上即可达到预期效果: