`most` pager가 표준 입력에서 색상을 올바르게 처리하도록하십시오


10

most표준 입력에서 수신 한 텍스트에 페이저가 색상을 올바르게 표시 하도록하려면 어떻게합니까 ?

참고 :의 버그인지 확실하지 않습니다 most.

와와 같은 문제가 발생하지 않고 lessmoremost사용합니다 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)

most명령을 잘못 사용하여 무언가를 잃어 버리거나 (수동 페이지 가 도움이되지 않음) 버그로보고해야합니까?

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

주석에 언급 된 Sparhawk 은 환경 변수에 설정 될 수 less있는 옵션 -R(또는 --RAW-CONTROL-CHARS) 또는 -r(또는 --raw-control-chars)이 제공되지 않으면 작동하지 않습니다 LESS.

그리고 실제로, 나는 비슷한 옵션을 먼저 찾았습니다 most(그러나 찾지 못했습니다).

최신 정보

모두가 아닌 UTF-8로 인코딩 된 텍스트에 문제가 있습니다 most. 제 경우에는 터미널에 문제가 없으므로 터미널이 아닙니다. 3 가지 페이저 모두에 동일한 색상이없는 UTF-8 텍스트가 적합하므로 문자 인코딩이 아닙니다.


1
FWIW less는 나를 위해 작동하지 않습니다. 필요합니다 less -R.
Sparhawk

@Sparhawk, 예, 죄송합니다 export LESS="--hilite-search --LINE-NUMBERS --raw-control-chars". 내 프로필에 다음이 있습니다. 에 대한 비슷한 옵션이 있다고 생각 most했지만 매뉴얼 페이지에서는 그러한 것을 언급하지 않습니다. 참고 : LESS환경 변수 에 대해 알리기 위해 게시물을 편집 할 것 입니다.
Hibou57

답변:


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아무것도 표시하지 않는 인스턴스가 나타납니다. 대답은 또한 매우 구체적으로 보이며 grepgrep 이상으로 색상 표시 및 이스케이프 코드 문제가 발생했습니다. -bash가 포함 된 MacOS 10.12.64.4.19(1)-release (x86_64-apple-darwin16.7.0)
adfaklsdjf
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.