가능하다면 사람의 PAGER 변수를 변경하는 방법은 무엇입니까?

가능하다면 사람의 PAGER 변수를 변경하는 방법은 무엇입니까?

저는 Linux 전문가는 아니지만 소개 책을 읽다가 man페이지가 PAGER환경 변수를 사용하여 페이지의 내용을 표시한다는 것을 발견했습니다 man. 확인해 보니 변수 printenv는 발견되지 않았습니다 PAGER.

그런데 바이너리 파일이고 경로가 내 경로에 있기 때문에 /usr/bin.pager$PAGER

궁금해서 이 변수를 수정하는 방법을 알고 싶습니다 PAGER. Bash 파일에 하나를 추가하려고 시도했지만 작동하지 않았고 호출기를 변경하는 방법을 찾을 수 없었습니다.

stdin호출기의 특별한 점은 무엇입니까? 파이프의 내용을 읽거나 지원할 수 있는 모든 프로그램이 호출기가 될 것이라고 기대합니다. vim호출기가 될 수 있습니까?

내부적으로 는 다음 작업을 수행하는 것처럼 정의된 변수에 데이터를 보내는 man데 사용되는 것처럼 보이지만 실패합니다.sedPAGER

env PAGER=/usr/bin/nano man printf

아래와 같이 오류가 발생합니다.

여기에 이미지 설명을 입력하세요.

답변1

이 변수는 뿐만 아니라 페이지 매김이 필요한 다른 출력(예 : 등) 에도 PAGER사용됩니다.mangit branchjournalctl

이 설정을 맨페이지에만 적용하려면 MANPAGER이 옵션을 사용해야 합니다 .

vim로써 정의 된 MANPAGER:

export MANPAGER="vim +MANPAGER -"
  • +MANPAGERvim투자하다맨페이지모드(색상, 보이지 않는 문자 숨기기 등). 이것은 또한 읽기 전용으로 만듭니다
  • 끝에 있는 것은 -표준 입력에서 텍스트를 읽는 것을 의미합니다(표준 입력)

다른 호출기의 경우:

  • 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존재하지 않을 수도 있는 실제 호출기에 대한 심볼릭 링크일 뿐입니다).

관련 정보