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


10

如何使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在评论中提到的那样,less如果没有为其提供选项-R(或--RAW-CONTROL-CHARS)或-r(或--raw-control-chars)(也可以在LESS环境变量中设置),则该选项将不起作用。

的确,我首先搜索了类似的选项most(但找不到)。

更新资料

所有人都有彩色UTF-8编码文本的问题,而不仅仅是most。就我而言,终端就可以了,所以那不是终端。对于所有三个寻呼机,相同的无色UTF-8文本均适用,因此不是字符编码。


1
FWIW less对我不起作用。我需要less -R
Sparhawk

@Sparhawk,是的,很抱歉,我忘记了我的个人资料中的信息:export LESS="--hilite-search --LINE-NUMBERS --raw-control-chars"。我以为有类似的选项most,但是手册页中没有提到这种事情。注意:我将编辑我的文章以讲述LESS环境变量。
Hibou57

Answers:


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
         ...

@ Hibou57-关于此答案的任何内容都无法回答您的问题?
mikeserv

1
我也遇到了这个。我不理解此答案中的命令,当我在系统上尝试该命令时,会得到一个不most显示任何内容的实例。答案似乎也非常特定grep,并且我正在经历grep之外的color-display-plus-escape-codes问题。-具有bash的MacOS 10.12.64.4.19(1)-release (x86_64-apple-darwin16.7.0)
adfaklsdjf
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.