저는 Linux 전문가는 아니지만 소개 책을 읽다가 man
페이지가 PAGER
환경 변수를 사용하여 페이지의 내용을 표시한다는 것을 발견했습니다 man
. 확인해 보니 변수 printenv
는 발견되지 않았습니다 PAGER
.
그런데 바이너리 파일이고 경로가 내 경로에 있기 때문에 /usr/bin
.pager
$PAGER
궁금해서 이 변수를 수정하는 방법을 알고 싶습니다 PAGER
. Bash 파일에 하나를 추가하려고 시도했지만 작동하지 않았고 호출기를 변경하는 방법을 찾을 수 없었습니다.
stdin
호출기의 특별한 점은 무엇입니까? 파이프의 내용을 읽거나 지원할 수 있는 모든 프로그램이 호출기가 될 것이라고 기대합니다. vim
호출기가 될 수 있습니까?
내부적으로 는 다음 작업을 수행하는 것처럼 정의된 변수에 데이터를 보내는 man
데 사용되는 것처럼 보이지만 실패합니다.sed
PAGER
env PAGER=/usr/bin/nano man printf
아래와 같이 오류가 발생합니다.
답변1
이 변수는 뿐만 아니라 페이지 매김이 필요한 다른 출력(예 : 등) 에도 PAGER
사용됩니다.man
git branch
journalctl
이 설정을 맨페이지에만 적용하려면 MANPAGER
이 옵션을 사용해야 합니다 .
vim
로써 정의 된 MANPAGER
:
export MANPAGER="vim +MANPAGER -"
+MANPAGER
vim
투자하다맨페이지모드(색상, 보이지 않는 문자 숨기기 등). 이것은 또한 읽기 전용으로 만듭니다- 끝에 있는 것은
-
표준 입력에서 텍스트를 읽는 것을 의미합니다(표준 입력)
다른 호출기의 경우:
Nano(@muru가 설명했듯이 예쁘지는 않습니다):
export MANPAGER="nano -"
다음의 경우 해당 프로그램은 원래 읽기용으로 설계되었으므로 하이픈을 추가할 필요가 없습니다.표준 입력.
최대:
export MANPAGER="most"
더 적은:
export MANPAGER="less"
더:
export MANPAGER="more"
박쥐(좋은 색상과 형식):
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
답변2
호출기로 사용하려면 nano
표준 입력에서 읽도록 지시해야 합니다.
MANPAGER='nano -' man printf
man
그러나 출력 형식화된 문자는 nano
형식화된 텍스트가 아닌 있는 그대로 표시되기 때문에 결과가 좋지 않습니다 .
예, Vim에서도 작동합니다. Vim은 이미일부이것을 지원하십시오. 바라보다:h manpager.vim
자세한 내용은.
sed
내부적으로 이 사람은 데이터 전송 에만 사용되는 것으로 보입니다.
아니요, 아무 소용 man
이 없습니다 sed
. 실제로 troff
텍스트 서식을 지정 하는 데 사용됩니다 .
그러나 바이너리이고 경로가 내 경로에 있으므로 Linux에서 기본 옵션이라고 가정하는
/usr/bin
프로그램도 있습니다 .pager
$PAGER
데비안이나 일부 데비안 파생물을 사용하는 경우에 해당됩니다. ~에서man man
:
-P pager, --pager=pager
Specify which output pager to use. By default, man uses pager, falling back to cat
if pager is not found or is not executable. This option overrides the $MANPAGER
environment variable, which in turn overrides the $PAGER environment variable. It
is not used in conjunction with -f or -k.
다른 배포판에서는 반드시 그런 것은 아닙니다( pager
존재하지 않을 수도 있는 실제 호출기에 대한 심볼릭 링크일 뿐입니다).