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-chars
LESS
사실, 비슷한 옵션을 먼저 검색해 보았지만 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
...