使“大多数”寻呼机正确处理来自标准输入的颜色

使“大多数”寻呼机正确处理来自标准输入的颜色

如何使most寻呼机正确显示从标准输入接收的文本中的颜色?

注意:我不确定这是否是most.

我没有遇到与less和相同的问题more,仅遇到与相同的问题most,否则它可以很好地用作 所使用的寻呼机man

我不会发布图像,并邀请人们尝试这个(仅当您已经most安装时):

$ command apropos zip | command grep --color=always zip | command less
$ command apropos zip | command grep --color=always zip | command more
$ command apropos zip | command grep --color=always zip | command most

lessmore正确显示颜色,同时most显示带有附加“垃圾”的颜色,^[[K包裹所有彩色文本区域。

令人惊讶的是,这是可以的:

$ (export PAGER=most; command man zip)

我是否遗漏了某些内容(手册页most没有帮助),误用了命令,或者这是我应该报告为错误的内容?

less关于(更新)的说明:

正如 Sparhawk 在评论中提到的,如果没有给出选项(or ) 或(or ),less则不起作用,该选项也可以在环境变量中设置。-R--RAW-CONTROL-CHARS-r--raw-control-charsLESS

事实上,我首先搜索了类似的选项most(但未能找到)。

更新

所有这些都存在彩色 UTF-8 编码文本的问题,而不仅仅是most.就我而言,终端可以使用,所以那不是终端。相同的未着色 UTF-8 文本适用于所有三个寻呼机,因此这不是字符编码。

答案1

man grep 2>/dev/null | 
GREP_COLORS=$(man grep 2>/dev/null | 
grep '^ *ms=01;31' -m1):ne \
grep '^ *GREP_COLORS *$\|^ *ne ' -A9 --color=always | 
most

对我有用。顺便说一句,我只是most为了解决这个问题而安装的,我喜欢它。谢谢。

   GREP_COLORS
          Specifies  the  colors  and other attributes
          used  to  highlight  various  parts  of  the
          output.  Its value is a colon-separated list
          of    capabilities    that    defaults    to
          ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36
          with the  rv  and  ne  boolean  capabilities
          omitted     (i.e.,     false).     Supported
          capabilities are as follows.

          ne     Boolean  value that prevents clearing
                 to the end of  line  using  Erase  in
                 Line  (EL) to Right (\33[K) each time
                 a  colorized  item  ends.   This   is
                 needed  on  terminals  on which EL is
                 not  supported.   It   is   otherwise
                 useful  on  terminals  for  which the
                 back_color_erase    (bce)     boolean
                 terminfo  capability  does not apply,
                 when the chosen highlight  colors  do
         ...

相关内容