12

现在,我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

当然,这是不可读的。我查看了man页面most,但找不到任何“嘿,将这些控制字符显示为颜色而不是打印它们”选项。 less具有与 相同的垃圾行为most,但more显示颜色非常好,具有明显的限制more

是否有支持语法突出显示的寻呼机或参数和程序的一些疯狂组合,我可以将其串在一起以使其工作?最终,我想突出显示 Mercurial 的差异和日志,所以也许那里有一条捷径......

4

5 回答 5

10

我可以建议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。它工作得很好。

在此处输入图像描述

于 2013-05-29T01:19:07.883 回答
8

less -R按原样显示 ANSI 颜色序列(而不是扩展为插入符号)。这将使语法高亮工作!

您还可以创建一个环境变量LESS=-R以使其成为默认行为。其他选项也是如此;见man less

于 2011-03-22T22:55:02.213 回答
2

您可以尝试使用 jed。是的,它是一个文本编辑器,而不是寻呼机,但它非常轻巧,默认安装包含适用于各种文件类型和语言的出色配色方案。

于 2011-03-15T18:41:50.717 回答
1

Jed 有针对不同语言的语法高亮模式,类似于 emacs 的。例如,如果您将 C 程序通过管道传输给它,您可以通过按“ ESC ”,然后按“ x ”,然后键入“ c-mode ”来打开突出显示。如果它是一个 php 程序 - 将最后一部分更改为 ' php-mode ' 等等......

于 2012-03-31T10:17:13.327 回答
1

寻找蝙蝠:一只带翅膀的 cat(1) 克隆

bat支持大量编程和标记语言的语法高亮。

它不是寻呼机,但less如果需要,它会自动将输出重定向到。

在此处输入图像描述

于 2018-11-27T18:16:13.403 回答