"대부분의" 페이저가 표준 입력의 색상을 올바르게 처리하도록 만듭니다.

"대부분의" 페이저가 표준 입력의 색상을 올바르게 처리하도록 만듭니다.

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

less모든 색상 텍스트 영역을 감싸는 추가 "가비지"를 사용하여 색상을 표시하면서 more색상을 올바르게 표시합니다 .most^[[K

놀랍게도 다음과 같이 작동합니다.

$ (export PAGER=most; command man zip)

내가 뭔가를 놓치고 있거나(man 페이지는 most도움이 되지 않습니다), 명령을 잘못 사용하고 있습니까, 아니면 이것이 버그로 보고해야 합니까?

less(업데이트)에 대한 참고 사항:

Sparhawk가 주석에서 언급했듯이 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
         ...

관련 정보