目前,我使用 most
作为我的分页器。虽然它对于man
页面具有有用的语法突出显示,但在其他任何地方都缺乏带颜色的语法突出显示(我特别寻找diff/C++)。
同时,pygments
是一个很棒的程序。我可以轻松地使用它进行彩色输出:
# ./pygmentize -f console256 ${file}
hg diff | ./pygmentize -f console256 -l diff
现在,我希望能够分页输出,所以我只需使用:
# ./pygmentize -f console256 ${file} | most
hg diff | ./pygmentize -f console256 -l diff | most
此时,大多数转储都将着色控制字符全部显示在我的屏幕上,如下所示:
^[[38;5;28;01mclass^[[39;00m ^[[38;5;21;01mheap_allocator^[[39;00m
{
^[[38;5;28;01mpublic^[[39;00m^[[38;5;241m:^[[39m
这当然是不可读的。我查阅了most
命令的man
页,但找不到任何“嘿,以颜色显示控制字符而不是打印它们”的选项。 less
拥有与most
相同的垃圾行为,但more
完美地显示颜色,显然它也有局限性。
是否有一种分页程序支持语法高亮或可以串联一些参数和程序使其生效?最终,我想要突出显示来自Mercurial的差异和日志,所以也许有一些快捷方式...