`most`ページャーに標準入力の色を適切に処理させる


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テキストは、3つのポケットベルすべてで問題ないため、文字エンコードではありません。


1
FWIW lessは動作しません。必要less -Rです。
スパーホーク2014

@Sparhawk、はい、ごめんなさい、私はこれを私のプロフィールに忘れてしまいました:export LESS="--hilite-search --LINE-NUMBERS --raw-control-chars"。にも同様のオプションがあると思いましたmostが、マニュアルページはそのようなことについて言及していません。注:LESS環境変数について伝えるために投稿を編集します。
Hibou57 2014

回答:


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 2014

1
私もこれに遭遇しています。この回答のコマンドが理解できませmostん。システムで実行しようとすると、何も表示されないインスタンスが表示されます。答えもに非常に特有のようgrepであり、grep以外にもcolor-display-plus-escape-codesの問題が発生しています。4.4.19(1)-release (x86_64-apple-darwin16.7.0)
-MacOS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.