语法突出显示寻呼机

Tra*_*kel 9 command-line syntax-highlighting pager

现在,我most用作寻呼机.虽然它为man页面提供了有用的语法高亮显示,但它缺少用于其他任何内容的彩色语法高亮显示(我特意寻找diff/C++).

同时,这pygments是一个很棒的节目.我可以用它轻松制作彩色输出:

# ./pygmentize -f console256 ${file}
hg diff | ./pygmentize -f console256 -l diff
Run Code Online (Sandbox Code Playgroud)

现在,我希望能够分页输出,所以我只使用:

# ./pygmentize -f console256 ${file} | most
hg diff | ./pygmentize -f console256 -l diff | most
Run Code Online (Sandbox Code Playgroud)

此时,大多数将所有着色控制字符转储到我的屏幕上,如下所示:

^[[38;5;28;01mclass^[[39;00m ^[[38;5;21;01mheap_allocator^[[39;00m
{
^[[38;5;28;01mpublic^[[39;00m^[[38;5;241m:^[[39m
Run Code Online (Sandbox Code Playgroud)

当然,这是不可读的.我查看了man页面most,但我找不到任何"嘿,显示那些控制字符作为颜色而不是打印它们"的选项. less具有相同的垃圾行为most,但more显示颜色完美,具有明显的存在限制more.

是否有一个寻呼机支持语法高亮或一些参数和程序的疯狂组合我可以串起来使这个工作?最后,我想从Mercurial得到差异和日志突出显示,所以也许有一个捷径...

ELL*_*BLE 9

我可以建议vimpager吗?

首先,最近的vim发行版(我相信6.0及以上版本)附带一个寻呼机式模式脚本.它非常简单和实用,操作类似less.试试:vim '+help less' +only.

然而,更好的是,Rafael Kitover编写了一个更强大,更强大的脚本vimpager.它可以在GitHub(或vimscripts)上找到.如果您使用的是OS X并使用Homebrew,那就很简单了brew install vimpager.

那时,你可以简单set $PAGER=vimpager,甚至alias less=vimpager.它工作得很好.

在此输入图像描述


dan*_*cek 7

less -R按原样显示ANSI颜色序列(而不是扩展到符号表示法).这将使语法突出显示工作!

您还可以创建环境变量LESS=-R以使其成为默认行为.同样适用于其他选择; 看man less.